gpt4 book ai didi

python - 仅为某些特定元素向数据框添加值 - python

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:14 24 4
gpt4 key购买 nike

有了这两个数据框

df1 = pd.DataFrame({'c1':['a','b','c','d'],'c2':[10,20,10,22]})
df2 = pd.DataFrame({'c3':['e','f','a','g','b','c','r','j','d'],'c4':[1,2,3,4,5,6,7,8,9]})

我正在尝试将 c4 的值添加到 df1 中,仅用于 c3 中也存在于 中的元素c1:

>>> df1
c1 c2 c4
a 10 3
b 20 5
c 10 6
d 22 9

有没有在 pandas 中执行此操作的简单方法?

更新:

如果

df2 = pd.DataFrame({'c3':['e','f','a','g','b','c','r','j','d'],'c4':[1,2,3,4,5,6,7,8,9]},'c5':[10,20,30,40,50,60,70,80,90])

我怎样才能达到这个结果?

>>> df1
c1 c2 c4 c5
a 10 3 30
b 20 5 50
c 10 6 60
d 22 9 90

正在做:

>>> df1['c1'].map(df2.set_index('c3')['c4','c5'])

给我一​​个KeyError

最佳答案

df2['c3'] 上设置索引后,您可以在 df2['c4'] 上调用 map,这将执行查找:

In [239]:
df1 = pd.DataFrame({'c1':['a','b','c','d'],'c2':[10,20,10,22]})
df2 = pd.DataFrame({'c3':['e','f','a','g','b','c','r','j','d'],'c4':[1,2,3,4,5,6,7,8,9]})
df1['c4'] = df1['c1'].map(df2.set_index('c3')['c4'])
df1

Out[239]:
c1 c2 c4
0 a 10 3
1 b 20 5
2 c 10 6
3 d 22 9

关于python - 仅为某些特定元素向数据框添加值 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748714/

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