gpt4 book ai didi

python - 如果值在另一列中,则来自另一个 DataFrame 的 pandas 列?

转载 作者:行者123 更新时间:2023-12-01 02:59:08 24 4
gpt4 key购买 nike

我有 pd.DataFrame 列出了线规及其相应的电流:

e_ref =

   wire_gauge  current
0 14 15
1 12 20
2 10 30
3 8 50
4 6 60
5 4 85
6 3 100
7 2 115

另一个 DataFrame 列出了系统中的断路器:

系统=

    breakers
0 30
1 20
2 30
3 15
4 30

我需要通过查找当前 e_ref 系列中的断路器值,从 e_ref DataFrame 的“wire_gauge”列向系统 DataFrame 添加“线规”列。

所以输出将是:

    breakers  wire_gauge
0 30 10
1 20 12
2 30 10
3 15 14
4 30 10
<小时/>

我一直混淆其他帖子中的几个答案,目前没有有效的 pandas 解决方案。我可以使用 python 循环来完成这个工作,但我觉得这里有一个 pandas one liner...

以下是我正在研究的解决方案类型:

df.ix[df.breakers.isin(e_ref['current']), 'wire_gauge'] = e_ref['wire_gauge']

df['wire_gauge']=e_ref.loc[e_ref['current'] == df['breakers'] ]

感谢您的时间和指导!

最佳答案

使用mapSeries 创建表单 e_refjoin ,但是 e_ref 中的 current 列中的值必须是唯一的:

print (e_ref['current'].is_unique)
True

s = e_ref.set_index('current')['wire_gauge']
system['wire_gauge'] = system['breakers'].map(s)
print (system)
breakers wire_gauge
0 30 10
1 20 12
2 30 10
3 15 14
4 30 10

替代方案:

df = system.join(e_ref.set_index('current'), on='breakers')
print (df)
breakers wire_gauge
0 30 10
1 20 12
2 30 10
3 15 14
4 30 10

关于python - 如果值在另一列中,则来自另一个 DataFrame 的 pandas 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979514/

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