计算使用偏差b的绝对值并将结果存储在.capplyd
df = pd.DataFrame({ 'a':[7083.3317, 1249.9998, 3749.9999, 2083.3332],
'b': [182.93, 34.534, 59.334, 84.93],
'c': [157.93, 10.534, 24.334, 55.93]})
a b c
0 7083.3317 182.930 157.930
1 1249.9998 34.534 10.534
2 3749.9999 59.334 24.334
3 2083.3332 84.930 55.930
不幸的是,不接受以下解决方案:
df['d'] = abs(df['b'] - df['c'])
必要的:
f = lambda row: abs(row['x'] - row['y'])
df['d'] = df.loc[:, 'b', 'c'].apply(f, axis=1)
给出错误消息:
IndexingError:索引器过多
你可以不用
.apply()- Pandas Series 有一个Series.abs()方法:如何使用 lambda 函数:
注意:该方法
DataFrame.apply(..., axis=1)非常慢,只有在找不到其他矢量化解决方案时才应使用。像这样应用
至于错误,要选择多个列,
.loc您需要将它们指定为列表: