- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
超全的pandas数据分析常用函数总结:下篇
先创建一个data2数据集
data2=pd.DataFrame({ id:np.arange(102,105), profit:[1,10,2]})data2
输出结果:
再创建一个data3数据集
data3=pd.DataFrame({ id:np.arange(111,113), money:[106,51]})data3
输出结果:
5.1 数据的合并
用merge合并
DataFrame.merge(self,right,how =‘inner’,on = None)
right指要合并的对象
on指要加入的列或索引级别名称,必需在两个DataFrame中都可以找到。
how打算要执行的合并类型:left(使用左框架中的键)、right、inner(交集,默认)、outer(并集)
data_new=pd.merge(data,data2,on=id,how=inner) # 默认取交集data_new=pd.merge(data,data2,on=id,how=outer) # 取并集,没有值的地方填充NaNdata.merge(data2,on=id,how=inner) # 另一种写法,输出结果见下方
输出结果:
更多关于pandas.DataFrame.merge的用法,戳下面官方链接:/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html
data.merge(data2,on=id,how=left) # 使用左框架中的键
输出结果:
用append合并
data.append(data2) # 在原数据集的下方合并入新的数据集
输出结果:
用join合并
用下面这种方式会报错:列堆叠,且没有指定后缀,由于上面的数据data和data2都有“id”列,所以需要给id列指明后缀。
data.join(data2) # 会报错
第一种修改方式:
data.join(data2,lsuffix=_data, rsuffix=_data2)
输出结果:
其次种修改方式:
data.set_index(id).join(data2.set_index(id))
输出结果:
更多关于pandas.DataFrame.join的用法,戳下面官方链接:/pandas-docs/stable/reference/api/pandas.DataFrame.join.html
用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,data3],axis = 1,keys=[data, data2,data3])data_new
输出结果:
更多关于pandas.concat的用法,戳下面官方链接:
/pandas-docs/version/0.23.4/generated/pandas.concat.html
5.2 设置索引列
data.set_index(id) # 设置id为索引列
输出结果:
data.reset_index(drop=True) # 重置索引列,并且避开将旧索引添加为列
输出结果:
5.3 依据特定列的值排序:
依据索引列进行排序:
data.sort_index()
依据money的值进行排序:
data.sort_values(by=money,ascending = True) # ascending默认为True,即升序.
输出结果:
5.4 分类显示
假如money列的值=10, level列显示high,否则显示low:
data[level] = np.where(data[money]=10, high, low)data
输出结果:
5.5 分组标记
data.loc[(data[level]==high) (data[origin]==China),sign]=棒data
输出结果:
5.6 切割数据
对date字段的值依次进行分列,并创建数据表,索引值为data的索引列,列名称为year\mo
文档评论(0)