如果值在另一列中,则Pandas来自另一个数据帧的列?

2024-06-25 22:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有pd数据帧列出线规及其相应电流:

e_参考=

   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

另一个数据帧列出了系统中的断路器:

系统=

^{pr2}$

我需要通过查找e峎ref当前系列中的断路器值,从e_ref数据帧的“wire-gauge”列向系统数据框添加“wire gauge”列

所以输出结果是:

    breakers  wire_gauge
0         30  10
1         20  12
2         30  10
3         15  14
4         30  10

我一直混淆其他帖子的几个答案,目前还没有一个有效的熊猫解决方案。我可以使用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'] ]

感谢您的时间和指导!在


Tags: 数据refdf系统current解决方案帖子电流
1条回答
网友
1楼 · 发布于 2024-06-25 22:37:47

使用Series创建的表单e_ref或{a2},但是e_refcurrent列中的必需值必须是唯一的:

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

备选方案:

^{pr2}$

相关问题 更多 >