【发布时间】:2018-07-07 01:44:36
【问题描述】:
我需要对 2 列执行条件计算。规则是一样的。我一直在使用两个函数并将它们应用于每一列,如下所示。
df = pd.DataFrame({'Min': [50, 50],
'Max' : [150, 150],
'Rule': ['A', 'B']})
def adjust_min(row):
if row['Rule'] == 'A':
return row['Min'] * 5
elif row['Rule'] == 'B':
return row['Min'] * 10
else:
return row['Min']
def adjust_max(row):
if row['Rule'] == 'A':
return row['Max'] * 5
elif row['Rule'] == 'B':
return row['Max'] * 10
else:
return row['Max']
df['Min'] = df.apply(adjust_min, axis=1)
理想情况下,我想要一个适用于两列的函数,也许:
if row['Rule'] == 'A':
return row * 5
有没有更有效的方法来做到这一点?谢谢!
【问题讨论】:
-
我注意到您正在使用函数定义来返回数据帧的“列”,但您没有传入数据帧。您是否将此功能应用于数据框?您没有显示此代码的更多内容吗?另外,您能否将示例数据框作为文本(不是图片)作为Minimal, Complete, and Verifiable example 的一部分包含在内?
标签: python pandas numpy dataframe