pandas python中具有相似特性的两个数据框的合并

7hiiyaii  于 2023-01-15  发布在  Python
关注(0)|答案(1)|浏览(116)

我是Python新手。我想合并两个数据框,我使用了合并,它因为重复而变得太大了。我为我所做的创建了一个示例代码。有没有更好的性能?我真的很欣赏你的想法。

import pandas as pd
data = [['t', 10, 5], ['n', 15, 5], ['j', 14, 66],['t', 10, 8], ['n', 15, 55]]

df1 = pd.DataFrame(data, columns=['Name', 'Age', "HH"])
data = [['t', 10, 100], ['n', 15, 101], ['j', 14, 102],['t', 10, 81], ['n', 15, 81]] 

df2 = pd.DataFrame(data, columns=['Name', 'Age', "year"])

res= pd.merge(df2, df, on=['Name',"Age"], how = "inner")


result :

    Name    Age year    HH
0   t       10  100      5
1   t       10  100      8
2   t       10  81       5
3   t       10  81       8
4   n       15  101      5
5   n       15  101      55
6   n       15  81       5
7   n       15  81       55
8   j       14  102      66

我还使用了JOIN,但它没有帮助,并提供了相同的结果。

df1.set_index(['Name','Age'],inplace=True)
df2.set_index(['Name','Age'],inplace=True)
df2.join(df1)
kpbwa7wx

kpbwa7wx1#

在上次尝试之后,您已经接近成功了,一旦您设置了新索引,就可以使用pd.concat

df1.set_index(['Name','Age'],inplace=True)
df2.set_index(['Name','Age'],inplace=True)
pd.concat([df1,df2], axis=1)

其输出:

HH  year
Name Age          
t    10    5   100
n    15    5   101
j    14   66   102
t    10    8    81
n    15   55    81

相关问题