pandas是为了解决数据分析任务而生的。pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法,能很好的帮助我们分析爬取到的数据。
环境准备
pandas、numpy
本篇所有代码都运行在jupyter上
目录
1、增加数据
2、删除数据
3、查询数据
4、修改数据
准备工作
先生成两个数据集
data = {'city': ['北京', '上海', '广州', '深圳'],
'2018': [33105, 36011, 22859, 24221]}
data = pd.DataFrame(data)
data2 = {'city': ['北京', '上海', '广州', '深圳'],
'2017': [28014, 30632, 21503, 22490]}
data2 = pd.DataFrame(data2)
1、增加数据
合并数据
- 方法一:用concat合并
pandas.concat(objs,axis = 0,ignore_index = False,keys = None)
objs:Series,DataFrame或Panel对象的序列或映射。
axis:串联的轴,默认为0,即以索引串联(竖直拼接);如果为1,则以列串联(水平拼接)
ignore_index:清除现有索引并将其重置,默认为False。
key:在数据的最外层添加层次结构索引。
data_new = pd.concat([data, data2], axis=1)
运行结果:
- 方法二:用merge合并
DataFrame.merge(self,right,how =‘inner’,on = None)
right:指要合并的对象
on:指要加入的列或索引级别名称,必须在两个DataFrame中都可以找到。
how:决定要执行的合并类型:left(使用左框架中的键)、right、inner(交集,默认)、outer(并集)
data.merge(data2,on='city',how='left')
运行结果:
- 方法三:用join合并
这种方法需要指定相同列索引的后缀
1、
data.join(data2,lsuffix='_data', rsuffix='_data2')
运行结果:
2、
data.set_index('city').join(data2.set_index('city'))
运行结果:
- 方法四:用append合并
data.append(data2)
运行结果:
- 增加列
city = ['南京', '杭州', '合肥', '青岛']
data.insert(0,'city2', city)
在第0列,加上column名称为city2,值为city的数据。
运行结果:
2、删除数据
- 删除包含某值的行
data1 = data2[data2.city != '深圳']
去掉city为深圳的行
运行结果:
- 删除行
data2.drop([0, 1], axis=0)
运行结果:
- 删除列
data2.drop(['city'], axis=1)
运行结果:
- 删除重复行
data['city'].drop_duplicates()
默认删除后面出现的重复值,即保留第一次出现的重复值
3、查询数据
- 1、data['column_name'] 和data[row_start_index, row_end_index]
- 2、data.loc[index,column]
- 3、iloc[row_index, column_index]
- 查看单列
data['city']
运行结果:
- 查看多列
data[['city', '2018']]
运行结果:
- 查看行
data.loc[2]
运行结果:
data.loc[1:1]
运行结果:
- 查看多行
data.loc[1:]
运行结果:
data.iloc[1:,:1]
运行结果
data.iloc[[1,3],:2]
运行结果:
4、修改数据
- 修改某个数据
data.iloc[1,1] = 100
运行结果:
data.loc[2,'city'] = '广州(粤语)'
运行结果:
- 修改某列数据
data.iloc[:,1] = [1, 10, 100, 1000]
运行结果:
- 修改某行数据
data.iloc[3,:] = ['深圳(普通话)', 1100]
运行结果:
如果对你有帮助的话给我点赞呗