python - 基于其他数据框向 Pandas 数据框添加新列

标签 python pandas dataframe machine-learning data-science

我正在尝试在 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,随便什么),如:

df2: 
   A  B  C  D  E
0  0  1  0  1  0
1  2  3  2  7  2
2  4  5  4  3  2
3  5  5  5  4  6

如您所见,在生成的数据框中不存在 A=6 的行,该行存在于 df1 中但不存在于 df0 中。此外,A=0 的行在 df1 中重复,但在结果 df2 中不重复。

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

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

但我不确定如何应用保留唯一数据的部分(请记住 df1 可以包含重复数据)并将两列添加到 df2 数据集(或将它们添加到 df0)。 我在这里搜索过,但我不知道如何应用类似 groupby 甚至 map 的东西。

有什么想法吗?

谢谢!

最佳答案

这是 merge ( docs ) 的基本应用:

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

关于python - 基于其他数据框向 Pandas 数据框添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39359272/

相关文章:

python - 从断点列表中完全枚举范围

python - 从嵌套 xml 创建数据框并生成 csv

python - 如何在比较同一数据帧的两个版本后获取修改的行

python - 复杂的注释和聚合查询

Python 杀死线程

python - 选择某些行值并将它们设为 pandas 中的列

python - 使用对新/旧索引的容差在 Pandas 中重新索引数据框

python - pandas groupby 有两个键

python - 合并行 pandas 数据框

python - 当我刷新页面时,我的自定义 Django CMS 插件的子插件变得无效