pandas的增删查改

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)

运行结果:

f9cee0e5524a3e98f56bcea3e30874f2.png
  • 方法二:用merge合并
DataFrame.merge(self,right,how =‘inner’,on = None)

right:指要合并的对象

on:指要加入的列或索引级别名称,必须在两个DataFrame中都可以找到。

how:决定要执行的合并类型:left(使用左框架中的键)、right、inner(交集,默认)、outer(并集)

data.merge(data2,on='city',how='left')

运行结果:

d19b9534c00e18a2c62fba11a1cf7c60.png
  • 方法三:用join合并

这种方法需要指定相同列索引的后缀

1、

data.join(data2,lsuffix='_data', rsuffix='_data2')

运行结果:

aed9de5a69a2edd94e42a744cac19edf.png

2、

data.set_index('city').join(data2.set_index('city'))

运行结果:

83ba5758f9da42a879f1ce6ef7656413.png
  • 方法四:用append合并
data.append(data2)

运行结果:

1260630ba6bdd81afe100cd4be151ca8.png


  • 增加列
city = ['南京', '杭州', '合肥', '青岛']
data.insert(0,'city2', city)

在第0列,加上column名称为city2,值为city的数据。

运行结果:

8d827ac58402808be8a57fbda8c5f657.png

2、删除数据

  • 删除包含某值的行
data1 = data2[data2.city != '深圳'] 

去掉city为深圳的行

运行结果:

5253cd17d39cd18a787e63ec47a24f41.png
  • 删除行
data2.drop([0, 1], axis=0)

运行结果:

01d061845c865696e723dd0bf8e1a83c.png
  • 删除列
data2.drop(['city'], axis=1)

运行结果:

3769e4d7df0e9292c26920d4706ddaf3.png
  • 删除重复行
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']

运行结果:

41a309becf266b52bf62972ec85e918d.png
  • 查看多列
data[['city', '2018']]

运行结果:

15a1ffbeef559afdd0e20d3a77b04f8c.png
  • 查看行
data.loc[2]

运行结果:

1dcccd8a0353d9bf6f8f63ae9383b50b.png
data.loc[1:1]

运行结果:

9cdf81b52844f212e78dee75b9807932.png
  • 查看多行
data.loc[1:]

运行结果:

288bc1a758a7371748386994989ca572.png

data.iloc[1:,:1]

运行结果

6363b0c4f24d57881e74baaba2b6113c.png
data.iloc[[1,3],:2]

运行结果:

4ad80b6e004dbfbcb70ed9891e5353c1.png

4、修改数据

  • 修改某个数据
data.iloc[1,1] = 100

运行结果:

210c8937d012410d2bbec86ac776f085.png
data.loc[2,'city'] = '广州(粤语)'

运行结果:

46d93b890a3612417b9a7129a3354f69.png
  • 修改某列数据
data.iloc[:,1] = [1, 10, 100, 1000]

运行结果:

4d3927d2335d0daaba0ca07b86ee990d.png
  • 修改某行数据
data.iloc[3,:] = ['深圳(普通话)', 1100]

运行结果:

c0d3beb6d72a096a37fb2cb5f5dd7713.png

如果对你有帮助的话给我点赞呗

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值