pandas 删除列_Pandas基本用法汇总

0| 引言

Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。

Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

1| 创建Series

Series是Pandas中最基本的对象,Series类似一种一维数组。

事实上,Series基本上就是基于NumPy的数组对象来的。

和NumPy的数组不同,Series能为数据自定义标签,也就是索引(index),然后通过索引来访问数组中的数据。

import pandas as pdimport numpy as nps1 = pd.Series([4,7,-3,0])print(s1)
443d67076340e7f44f1582e221c5b356.png

图 1 Series示例

  • s1.values : 查看series的值
  • s1.index : 查看series的索引值
s1.valuess1.index
ba504edba24fb13b4aff95c7f6ade36e.png

图2 查看values和index

s2 = pd.Series([4.0, 6.5, -0.5, 3],index= ['d','c','b','a'])print(s2)
3fbafb256ee1929528b855c86c22ab91.png

图3 s2示例

根据索引取值:

s2['b']s2[['a','b','c']]
94de75bc34163cc12277cd888c132e5d.png

图4 根据索引取值

e67a0b63c55cc1863b15f495fa5acb86.png

图5 查看索引序列是否在s2数组中

2| 创建DataFrame

DataFrame是一个二维的表结构.Pandas的DataFrame可以存储许多种不同的数据类型,

并且每一个坐标轴都有自己的标签。你可以把它想象成一个series的字典项。

# DataFramedata ={'year':[2013,2015,2016,2017],     'income':[1000, 2000,3000,4000],        'pay':[5000, 10000, 20000,30000]      } # 以列排列df1=pd.DataFrame(data)df1
3c282fa4b8b59810fd76866d74341501.png

图6 DataFrame示例

DataFrame的属性

df1.columns :查看列元素

df1.index :查看索引

df1.values :查看所有元素

df1.describe:查看描述属性

c4274cd10dd8757bf6d1a65bc947c675.png

图7 查看DataFrame的columns,index,values属性

describe(): 可以查看mean(), std(), min(), 四分之一分位,二分之一分位,四分之三分位,max()

a6edba0c111e44f8ae846ac24b9b79b3.png

图8 查看describe属性

df3 =pd.DataFrame(np.arange(12).reshape((3,4)),index=['a','c','b'],columns=[2,33,44,5])df3
d578abb8a2cca5b55efb01c0adebf046.png

图8 示例

# 以列索引升序排列df3.sort_index(axis=1)
cb7d182631e983687675eb5978a8984c.png

图9 列索引排序

# 以行索引升序排列df3.sort_index(axis=0)
b3629d0c1cf7f914f77389d31d32d79c.png

图 10 行索引排序

# 以某值所对应的索引值进行排序df3.sort_values(by=44)
c2ebacf23ce5a80f42f8174daae4574a.png

图 11 以某值所对应的索引值进行排序

3| Pandas的数据选择

import pandas as pd  import numpy as npdates = pd.date_range('20170101',periods=6)df1 = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns =['A','B','C','D'])df1
1aee03fbc67f2e2b7e2d1f9c8dc24abe.png

图12 示例

查看DataFrame的列Series

df1['A'] =df1.A

9d58c75bc86a3489e91017942a1179b9.png

图 13

查看前两行:

70909abee216e4ac2983a88df7344163.png

图14 查看前两行

以索引名选取:

c273c8bc8e2adbc6d4e3e0dec670eb33.png

图15 以索引名选取

行索引:

000e9524f54e0e520220da3fa301e819.png

图16 行索引

通过位置【行与列】选择数据

178798a6bd965befab6074fc6fb77362.png

图17 通过位置索引

混合标签位置选择

6a6d013aa08286929d73261f427c399e.png

图18 混合标签索引

4 | Pandas的赋值与操作

import pandas as pd import numpy as npdates = np.arange(20201001,20201007)df1 =pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])df1
5dc3f10ccfe44b518febc8c017598f2b.png

图 19 示例

利用位置赋值

df1.iloc[2,2]
1221616558e23c1c12fa14aa28bca414.png

图 20 查看位置

df1.iloc[2,2] =100df1
43739a405cc9de5ba83cffa65e108c02.png

图 21 赋值

利用标签赋值

a11e7ad4c287a50a66e9d0f862896f9b.png

图 22 利用位置赋值

利用逻辑语句赋值

31460aebec34ee652088d35ec47b172c.png

图 23 利用逻辑语句赋值1

3bc0ac3eca40934b464d0c0e832db30e.png

图24 利用逻辑语句 赋值2

添加一列:

8dff599ee040df7cde5d1d99b786f532.png

图 25 添加一列 1

b52aa0136b08c7211a258d2f288d7f44.png

图 26 添加一列2

添加一行

1bf141832cf17ac53276f603e39b813c.png

图 27 添加一行1

22832ee9b7c4fc1efb10d68b164ac592.png

图 28 添加一行2

插入列

72acdcd8f86d98d71117f15fdf0b8860.png

图29 将df2的E列元素,插入第2列的G标签的列

g = df1.pop('G')df1.insert(6,'G',g)df1
b158c4a1b33ce4743845a5063a411388.png

图 30 将g插入第7列的"G"列

删除 列

0d23c3baf3da0d84a65c6f7d3e763589.png

图 31 删除列

4a848a4d8114d7b306481a2655f4ed7c.png

图 32 删除"A","B"列

461a3a52d65ce0764dfb68ba805f1211.png

图 33 删除前两行

5 | Pandas 处理缺省值

import pandas as pd import numpy as npdates = np.arange(20201001,20201007)df1 = pd.DataFrame(np.arange(18).reshape((6,3)),index=dates, columns=['A','B','C'])df1
35a398cee594a35aaea5fd2a9c3db522.png

图 34 示例

df2 = pd.DataFrame(df1,index=dates, columns=['A','B','C','D','E'])df2 
76c6c649cd26ab63d593fcfe422cd166.png

图 35 生成缺省数组 1

fa34318aa13c5c9370c0c13cea188b12.png

图 36 生成缺省数组 2

去除空值的行:

# 去除空值的行df2.dropna(axis=0, how='any') #axis =[0,1] 0表示行,列表示列。 how=['any','all'] any:表示任意一个NaN  all:表示全部为NaN
94537e29f8797e872fb380a59c6499a7.png

图 37 去除空值的行1

a6fa579d7c654e201cca2e573dfbc6b9.png

图 38 去除空值的行 2

将空值全部赋值为0:

3480221a110b9e30eee79609c7ccef00.png

图 39 去除空值并赋值为0

查看空值

f70ca87c600b58146e9a939126c68344.png

图 40 查看空值1

6|Pandas 合并

import pandas as pdimport numpy as npdf1 = pd.DataFrame(np.arange(12).reshape((3,4)),columns=['A','B','C','D'])df2 = pd.DataFrame(np.arange(12,24).reshape((3,4)),columns=['A','B','C','D'])df3 = pd.DataFrame(np.arange(24,36).reshape((3,4)),columns=['A','B','C','D'])print(df1)print('**__________**')print(df2)print('**__________**')print(df3)
f13b41fbdd092da38cdd512f283ff74f.png

图 41 示例

纵向合并:

55e00370143c9e546c1815913d43f967.png

图42 纵向合并

纵向合并,不考虑原来的jndex

cc71bef76b5b51f763196f5d3ad97ac5.png

图43 纵向合并,不考虑原来的jndex

横向合并,不考虑原来的index

3486a8ea319a37ab3aaa25e369070f12.png

图44 横向合并,不考虑原来的index

生成两个表:

559defc85bff129946aec6cd0e406812.png

图 45 生成两个表

967a2a48fd3e84e693305347d4432627.png

图 46 合并两个表,缺少部分用NaN填充

8fab047d3541a81bc1065d741c3d1cd2.png

图 47 合并两个表, 缺少部分去掉

9cbb79d84a4cce6d13f7955fa4805d2e.png

图 48 横向合并

39fddd16d7d11181f401dea6143bcc33.png

图 49 默认合并

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值