【发布时间】:2017-02-02 09:54:16
【问题描述】:
我有以下数据框:
region pop_1 pop_1_source pop_2 pop_2_source pop_3 pop_3_source
a 99 x1 84 x2 61 x3
b 64 x1 65 x2 16 x3
c 92 x1 26 x2 6 x3
d 82 x1 60 x2 38 x3
e 45 x1 77 x2 42 x3
我可以通过以下方式计算在每个区域中找到的最高值:
df['upper_limit'] = df[['pop_1','pop_2','pop_3']].max(axis=1)
如果我只比较两个人口,我可以计算出最高人口的来源,即:
df['upper_limit_source'] = np.where(df.upper_limit == df['upper_limit'],df.pop_1,df.pop_2)
但是,如果我尝试将其扩展为搜索所有三列,则无法正常工作。 我已经寻找了一个解决方案,但无法使用 np.where(np.logical_or 或类似的东西。
我是否遗漏了一些明显的东西?
【问题讨论】: