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]
上一篇下一篇

猜你喜欢

热点阅读