基于其他datafram向pandas dataframe添加新列

2024-03-28 09:52:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在pandas数据帧中设置一个新列(实际上是两列),数据来自其他数据帧。在

我有以下两个数据帧(它们是用于此目的的示例,原始数据帧要大得多):

In [116]: df0
Out[116]:     
   A  B  C
0  0  1  0
1  2  3  2
2  4  5  4
3  5  5  5


In [118]: df1
Out[118]: 
   A  D  E
0  2  7  2
1  6  5  5
2  4  3  2
3  0  1  0
4  5  4  6
5  0  1  0

我希望有一个新的数据帧(或添加到df0中,不管怎样),如下所示:

^{pr2}$

如您所见,在得到的数据帧中,不存在具有A=6的行,该行存在于df1中,但不存在于df0中。另外,在df1中复制了A=0的行,但在结果df2中没有复制。在

实际上,我在选择方法上遇到了麻烦。我可以这样做:

df1.loc[df1['A'].isin(df0['A'])]

但是我不知道如何应用keep with unique data的部分(记住df1可以包含重复的数据)并将这两列添加到df2数据集(或者将它们添加到df0)。 我在这里搜索,不知道如何应用groupby,甚至地图之类的东西。在

有什么想法吗?在

谢谢!在


Tags: 数据方法in目的示例pandas原始数据out
2条回答

试试这个 new_data=df0.set_index('A').join(df1.set_index('A')) 你可能会得到索引错误,然后你必须使两个数据帧的索引数目相等

这是mergedocs)的基本应用程序:

import pandas as pd
df2 = pd.merge(df0,df1, left_index=True, right_index=True)

相关问题 更多 >