我似乎无法弄清楚如何在pandas列中对值进行位移。
我想做的事情看起来像:
df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 4, 5]})
df['val'] = ((x << 1) * math.pi
结果:
unsupported operand type(s) for <<: 'Series' and 'int'
什么是正确的格式?
答案 0 :(得分:5)
使用numpy
(df.x.values<<1)*math.pi
Out[354]: array([ 6.28318531, 12.56637061, 18.84955592])
#df['val']=(df.x.values<<1)*math.pi
答案 1 :(得分:0)
这可能是您要寻找的。我不认为移位是矢量化的:
df['val'] = (df['x'].apply(lambda x: x << 1))*math.pi
输出:
x y val
0 1 3 6.283185
1 2 4 12.566371
2 3 5 18.849556