这个想法是从DataFrame中选择两列,但是其中一列需要除以2。我有以下代码:
C = pd.DataFrame({'name':['A','B','C'], 'num1': [99,3,5], 'num2' :[3.5,99,-5]})
C['num1_aux'] = C.num1/2
C['final'] = C[['num1_aux','num2']].min(axis=1)
哪个给我结果。 我想知道没有辅助步骤怎么可能,因此将操作包括在选择中。类似于:
C['final'] = C[[C.num1/2,C.num2]].min(axis=1)
哪个返回错误:
KeyError:“ [Index([(49.5,1.5,2.5),(3.5,99.0,-5.0)],dtype ='object')]都不在[列]中”
该操作有效:(49.5, 1.5, 2.5)
。但是应用程序关闭了。如果可能的话,可以在Pandas文档中找到避免这种简单(或愚蠢)问题的方法。
谢谢!
答案 0 :(得分:0)
您需要使用.assign()
C['final'] = C.assign(num1_aux=C['num1']/2)[['num1_aux','num2']].min(1)
输出:
name num1 num2 final
0 A 99 3.5 3.5
1 B 3 99.0 1.5
2 C 5 -5.0 -5.0