gpt4 book ai didi

python - 合并两个数据帧并分别添加 resp 列

转载 作者:行者123 更新时间:2023-11-28 20:59:01 25 4
gpt4 key购买 nike

我有两个数据框,我需要创建这两个数据框(第一列“A”的)的一种联合。

df1 = pd.DataFrame({'A' : ['a','b','c'], 'B' : [10,20,30], 'C' : [2,5,3]})
df2= pd.DataFrame({'A' : ['a','b','d'], 'B' : [34,21,45], 'C' : [1,5,5]})

输出-

   A   f_M   d_M  f_B  d_B
0 a 10 2 34 1
1 b 20 5 21 5
2 c 30 3 0 0
3 d 0 0 45 5

这是创建的新数据帧,它具有列('A')的两个数据帧的联合。f_M 列是如果 'B' 列在 df1 中有值,f_B 是如果它在 df2 中,如果是 0不在任何 df1/df2 中。

最佳答案

这看起来像是外部 merge 的经典用例:

df1.merge(df2, on='A', how='outer', suffixes=('_M', '_B')).fillna(0)

A B_M C_M B_B C_B
0 a 10.0 2.0 34.0 1.0
1 b 20.0 5.0 21.0 5.0
2 c 30.0 3.0 0.0 0.0
3 d 0.0 0.0 45.0 5.0

要考虑列,请使用 mapDataFrame.rename:

pd.merge(*map(
lambda x: x.rename(columns={'B':'f','C':'d'}), (df1, df2)
), on='A', how='outer', suffixes=('_M', '_B')
).fillna(0)

A f_M d_M f_B d_B
0 a 10.0 2.0 34.0 1.0
1 b 20.0 5.0 21.0 5.0
2 c 30.0 3.0 0.0 0.0
3 d 0.0 0.0 45.0 5.0

关于python - 合并两个数据帧并分别添加 resp 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50561162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com