【python数据分析】pandas数据合并

pandas数据合并

使用contact,append,merge完成数据集合并
自己学习用,欢迎大佬指正。

1.concat

pd.concat()可以合并series和DataFrame对象,默认情况为逐行合并,且保留索引

1.1使用concat简单合并两个df
pd.concat([df1,df2])#纵向合并
pd.concat([df1,df2],axis=1)#横向合并
1.2考虑索引的合并:ignore_index

由于concat在合并是会保留索引,即使索引重复

ser1 = pd.Series(['A', 'B', 'C'], index=[1, 2, 3])
ser2 = pd.Series(['D', 'E', 'F'], index=[1, 2, 3])
pd.concat([ser1,ser2])

结果为:

【python数据分析】pandas数据合并
如果使用:
pd.concat([ser1,ser2],ignore_index=True)

结果为:

【python数据分析】pandas数据合并
1.3 dataframe横向简单合并

有时候我们想要简单地合并两张具有同样行数的表格,不想管索引和顺序,但是由于concat合并时会保留索引,所以合并时出现不想要的NAN值。这里有一个暴力的方法:

df2.index=df1.index ##重置表格2的索引
pd.concat([df1,df2],axis=1)
1.4 join的方法合并

可以使用join的方法来进行两个数据集的交集或者并集合并,join=’outer'(并集),join=’inner'(交集)

df1=pd.DataFrame({"A":[1,2,3],"B":[2,3,4],"C":[3,4,5]})
df2=pd.DataFrame({"B":[2,3,4],"C":[3,4,5],"d":[3,4,6]})
>>
df1:            df2:
A B C           B C D
1 2 3           2 3 4
2 3 4           3 4 5
3 4 5           4 5 6

使用交集合并df1和df2

innerdf = pd.concat([df1,df2],join="inner")###可以看到A和D列已经没有了
    B   C
0   2   3
1   3   4
2   4   5
0   2   3
1   3   4
2   4   5

使用并集合并df1和df2:

pd.concat([df1,df2],join="outer",axis=1)
    A   B   C   B   C   d
0   1   2   3   2   3   3
1   2   3   4   3   4   4
2   3   4   5   4   5   6

2.append

df1.appende(df2)

3.merge

merge的方法类似于SQL语言中的merge,可以一对一链接,也能一对多链接,一对多链接时,会保留重复值。merge还会默认将输入的共同列作为键合并。

3.1用merge简单合并

基本的语法为: pd.merge(df1,df2)

df1=pd.DataFrame({"A":[1,1],"B":[1,3]})
df2=pd.DataFrame({"A":1,"C":2})
pd.merge(df1,df2)#将df2重复之后再合并
>>
    A   B   C
0   1   1   2
1   1   3   2

……未完

Original: https://blog.csdn.net/qq_42455430/article/details/123456564
Author: 超大只小笼包
Title: 【python数据分析】pandas数据合并

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/694183/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球