查看原文
其他

DataFrame数组常用方法(二)

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:孙晓玲

文字编辑:钱梦璇

技术总编:张   邯

Pandas是Python中强大的数据分析库,主要是因为它独特的数据结构与数据处理工具使得Python在数据处理与数据分析中非常快捷,前面已经介绍过Pandas常用的数据结构及其常用的方法,今天将为大家介绍DataFrame的常用操作。

追加一行append

append可以实现对原有数据追加一行的效果,选项ignore_index取“True”时忽略追加行的索引,取“False”时保留原索引。这里将df1的第三行追加到df1上,给出忽略索引和不忽略索引两种情况。

df1 = pd.DataFrame(np.random.randn(3, 4), columns=['A', 'B', 'C', 'D'])s1=df1.iloc[2]df1.append(s1,ignore_index=True)df1.append(s1,ignore_index=False)

从输出结果可知,ignore_index取“True时”,追加行的索引为3,取“False”时,追加行的索引为2正是我们选取的行索引。


纵向连接contat

既然可以追加一行,那将多行进行纵向连接怎么解决呢?concat正好可以解决这个问题。他可以将多部分进行纵向连接。为展示方便,这里重新生成一个20行5列的DataFrame,我们现在只需要日期为2号、3号,6到8号,17到20号的数据,就可以这样做。

dates = pd.date_range('20191101', periods=20)df2 = pd.DataFrame(np.random.randn(20, 5), index=dates, columns=list('abcde'))pieces=[df2[1:3],df2[5:8],df2[16:]]pd.concat(pieces)


横向拼接merge

如果想要对数据进行横向拼接merge就可以起到作用啦,这里我们给出两个小例子来进行介绍。第一个例子,将开心果和跳跳虎两个人的身高体重信息进行横向拼接,拼接依据为name,程序及结果如下:

infor1 = pd.DataFrame({'name': ['开心果', '跳跳虎'], 'hight':['179','183']})infor2 = pd.DataFrame({'name': ['开心果', '跳跳虎'], 'weight': ['68','70']})infor1infor2pd.merge(infor1,infor2,on='name')

第二个例子是对开心果2017到2018两年的身高体重进行交叉拼接,拼接依据为name,拼接程序及结果如下:

dates2=pd.date_range('2017', periods=2,freq='Y')infor3 = pd.DataFrame({'name': ['开心果', '开心果'], 'hight': ['179','183']},index=dates2)infor4 = pd.DataFrame({'name': ['开心果', '开心果'], 'weight': ['68','70']},index=dates2)infor3infor4pd.merge(infor3,infor4,on='name')

DataFrame常用方法就介绍到这里了,熟能生巧快来练习一下吧~




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐

ftools命令——畅游大数据时代的加速器

卫健委的“糊涂账”

Pandas中数据的排序与切片

DataFrame数组常用方法

巧用局部宏扩展函数dir

过了14天潜伏期真的没事了?

Pandas基本数据类型介绍

NumPy数组基本介绍

“个性化”sortobs命令,教你实现排序自由

携手战疫,我们在行动

恭贺新春,平安顺遂|各省疫情关注度地图

过年观影指南(二)

过年观影指南(一)

egenmore隐藏功能——进制转换

相遇insobs,如暗室逢灯

数据可视化之地理坐标系

SFI:Stata与Python的数据交互手册(一)
Stata模拟构建朋友圈

关于我们



微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存