pandas增删改查
当我们把数据放入DataFrame后,要数据分析就需要对数据进行进行各种操作,最常见的操作就是增删改查,特别是查,查进一步就是探查分析。
1.pandas读取数据
import pandas as pd
frame = pd.read_csv('./test.csv', header=None, columns=['state', 'year', 'pop'])
frame.index = frame['state']
2. pandas查
查询pandas有很多不同的方式,pandas处理的数据为表格形式,即行列式,访问数据既可以通过行和列组合来访问。
- 按行访问和按列访问
pandas可以按照行号的切片方式来访问,如
frame[0:4]
获取前5行数据
pandas通过列名直接筛选多列的数据如frame[['pop', 'year']]
获取pop和year列 loc和iloc 行列组合访问
loc 是按照索引名称和列名进行查询行列数据;iloc是按照行列整数来进行查询行列数据# 访问索引为Ohio的行,year和pop列 frame.loc['Ohio', ['year', 'pop']] # 访问year和pop列的所有行 frame.loc[:, ['year', 'pop']] # 访问前4行 frame.iloc[0:3,] # 访问前4行,第3列 frame.iloc[0:3, 2]
条件查询
最常用的条件查询方式是通过列名直接比较,如
frame[frame['year'] > 2001]
表示year这一列大于2001的所有行- 另一种等价的写法为query:
frame.query('year > 2001')
pandas增删改
pandas增加行和列的方式可以通过增加一个Series的方式
- 增加一列
frame['age'] = frame['year'] - 1900
- 增加一行
frame.loc[len(frame.index)] = ['1', 2, 4]
删除行和列
# 删除列(按照列名)
frame.drop(['age'], axis=1)
# 删除行(按照行的索引)
frame.drop(['Ohio'], axis=0)
frame.drop([6], axis=0)
# 替换第一行
frame[0:1] = [ 2, 1.2, 20]
# 修改第二行第3列
frame.iloc[1, 2] = 4