📜  如何从 Pandas 中的另一个 DataFrame 添加列?(1)

📅  最后修改于: 2023-12-03 15:37:54.607000             🧑  作者: Mango

如何从 Pandas 中的另一个 DataFrame 添加列?

在 Pandas 中,我们可以轻松地从一个 DataFrame 添加列到另一个 DataFrame,只需要使用 merge() 函数即可。

示例代码如下:

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'F', 'G'], 'value2': [5, 6, 7, 8]})

# 合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='key')

# 输出合并后的 DataFrame
print(merged_df)

输出结果如下:

  key  value  value2
0   B      2       5
1   D      4       6

在上面的示例代码中,我们使用 merge() 函数将 df1df2 合并为一个新的 DataFrame,其中 on='key' 表示按照 key 列进行合并。经过合并后,merged_df 中除了包含 value 列,还增加了 value2 列。

如果你想保留 df1 中的所有行,包括没有匹配到 df2 中的行。那么,可以将 how 参数设置为 left,如下所示:

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'F', 'G'], 'value2': [5, 6, 7, 8]})

# 合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='key', how='left')

# 输出合并后的 DataFrame
print(merged_df)

输出结果如下:

  key  value  value2
0   A      1     NaN
1   B      2     5.0
2   C      3     NaN
3   D      4     6.0

可以看到,经过左连接后,merged_df 中保留了 df1 中的所有行,并且在没有匹配到 df2 的行上增加了 NaN 值。

此外,还可以根据需求设置 how 参数的取值,比如 how='right' 表示右连接,how='outer' 表示外连接。

总之,通过 merge() 函数,我们可以轻松地将一个 DataFrame 的列添加到另一个 DataFrame 中。