gpt4 book ai didi

python - 将数据框与不可散列的列合并

转载 作者:行者123 更新时间:2023-11-28 19:35:01 24 4
gpt4 key购买 nike

我想合并两个 Pandas DataFrame。如果 item 代码(例如 A、B、C、D)相同,它们的属性 a, b 必须相同,但是 b 是一个 numpy 数组或列表不可散列。

富:

item   a     b              
A 1 [2,0]
B 1 [3,0]
C 0 [4,0]

酒吧:

item   a     b
A 1 [2,0]
D 0 [6,1]

这就是我想要的

code   a     b        Foo   Bar
A 1 [2,0] 1 1
B 1 [3,0] 1 0
C 0 [4,0] 1 0
D 0 [6,1] 0 1

最佳答案

您可以使用 df.mergedf.fillna:

out = foo.assign(Foo=1).merge(bar.assign(Bar=1), 'outer').fillna(0)
print(out)

item a b Foo Bar
0 A 1 (2, 0) 1.0 1.0
1 B 1 (3, 0) 1.0 0.0
2 C 0 (4, 0) 1.0 0.0
3 D 0 (6, 1) 0.0 1.0

如果b是列表类型,可以先转成元组再合并。

foo.b = foo.b.apply(tuple)
bar.b = bar.b.apply(tuple)
out = foo.assign(Foo=1).merge(bar.assign(Bar=1), 'outer').fillna(0)
out.b = out.b.apply(list)

print(out)

item a b Foo Bar
0 A 1 [2, 0] 1.0 1.0
1 B 1 [3, 0] 1.0 0.0
2 C 0 [4, 0] 1.0 0.0
3 D 0 [6, 1] 0.0 1.0

关于python - 将数据框与不可散列的列合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991496/

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