gpt4 book ai didi

python - Pandas:合并数据框并创建新的条件列

转载 作者:行者123 更新时间:2023-11-30 22:51:27 25 4
gpt4 key购买 nike

我有两个大型 pandas 数据框(有数百万行),其中包含两列、一个组标识符和一个 id。我正在尝试创建一个组合数据框,其中包含组、id,如果 id 在第一个数据帧中,则加上一列为 1 的列,否则为 0,如果 id 在第二个数据帧中,则为一列 1,否则一个 0。

换句话说,我正在尝试合并两个数据帧,并根据每个原始数据帧是否存在 id 创建条件列。关于如何解决这个问题有什么建议吗?

这是一个小例子:

import pandas as pd

>>> df_a = pd.DataFrame({'group': list('AAABBB'), 'id': [11,12,13,21,22,23]})
>>> df_b = pd.DataFrame({'group': list('AAABB'), 'id': [11,13,14,22,24]})
>>> df_a

group id
A 11
A 12
A 13
B 21
B 22
B 23

>>> df_b

group id
A 11
A 13
A 14
B 22
B 24

输出应如下所示:

>>> df_full      
group id a b
A 11 1 1
A 12 1 0
A 13 1 1
A 14 0 1
B 21 1 0
B 22 1 1
B 23 1 0
B 24 0 1

最佳答案

您可以为每个数据框创建两列,合并前用 1 填充,并在合并后用 0 填充 na:

df_a['a'] = 1
df_b['b'] = 1

pd.merge(df_a, df_b, how = 'outer', on = ['group', 'id']).fillna(0)

# group id a b
# 0 A 11.0 1.0 1.0
# 1 A 12.0 1.0 0.0
# 2 A 13.0 1.0 1.0
# 3 B 21.0 1.0 0.0
# 4 B 22.0 1.0 1.0
# 5 B 23.0 1.0 0.0
# 6 A 14.0 0.0 1.0
# 7 B 24.0 0.0 1.0

关于python - Pandas:合并数据框并创建新的条件列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39023511/

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