pandas 行和列的操作
2019-12-13 本文已影响0人
forjie
删除某一行
1.知道某行的index
df.drop(index_name)
2.条件删除某一行
# 删除列名称是=name的所有行
df.drop(df[df['name'] == 'yu'].index)
# 删除第一行
df.drop(index=0,inplace=True)
# 删除index=23的行
df.drop(23,inplace=True)
# 多条件删除行
df.drop(df[(df.name == 'yu') & (df.age ==12)].index)
增加行
1.在头部增加一行
# 替换第一行,index_name没有就是增加一行,有就是替换index_name的一行
df.loc[index_name] = [1,2,3,4,5]
2.顺延dataframe,在增加一行
# 所有的dataframe往后顺延2行,开始的2行全部为Nan
df.shift(period=2)
df.loc[index_name] = [12,3,4,5]
3.在某个位置添加一行
# 利用reindex先增加index的值,然后再添加Series
s = df.reindex(df.index.insert(0,'name'))
df.loc['name'] = [1,2,3,4]
4.利用append增加一行
增加一行index为sex,值是列表的值
s=pd.Series([12,3,4,5],columns=df.columns,name='sex')
df.append(s)
# 没有name的series的添加方法,添加的一行是没有index
s = pd.Series([1,2,3,4],columns=df.columns)
df.append(s,ignore_index=True)
查询行
1.查询第一行
# 第一行数据
df.irow(0)
# 第一列
df.icol(0)
2.最后一行
df.iloc[-1]
3.精确查询某一列的某一行单值
# 查询index=index_name那一行中column=col_name的那一个值
df.loc[index_name,col_name]
# 查询index=index_name那一行中columns=[col_name,col_name2]的series
df.loc[index_name,[col_name1,col_name2]
# 查询index=[index_name1,index_name2,index_name3],column=col_name的值
df.loc[[index_name1,index_name2,index_name3],col_name]
4.条件查询某些行
#name列名称等于yu的所有行
df.loc[df.name=='yu']
5.多条件条件查询
df.loc([(df.name>1) & (df.age <10)])
6.利用函数查询
查询index起始位2018-10的数据
def func(x):
return x.index.str.startwith('2018-10')
df.loc[func]
7.查询index=index_name的所有行
df.loc[df.index==index_name]