我有数据框外观这个:
df:
1 2 3.4
-2 2 1.1
2 3 4
-5 5 5
我可以在我的等式中使用这些数据:
result=abs(int(df[0])) +( int(df[1]) / 2 + float(df[2]) / 32)
因此,在此计算之后,我会收到一个列表,其中包含df
中每一行的结果,结果类型为浮点数。
问题:如何将其保存到一个列或数据框,并将这一列添加result
到另一个与df
相同的数据框?
我已经尝试了pd.DataFrame(result)
,但这并不起作用。
答案 0 :(得分:4)
直接分配到您尝试创建的新列。
df[3] = abs(int(df[0])) +( int(df[1]) / 2 + float(df[2]) / 32)
答案 1 :(得分:0)
Series.abs
df = pd.DataFrame({0: [1, -2, 2, -5], 1: [2, 2, 3, 5], 2: [3.4, 1.1, 4.0, 5.0]})
print (df)
0 1 2
0 1 2 3.4
1 -2 2 1.1
2 2 3 4.0
3 -5 5 5.0
df[3] = df[1].astype(int).abs() +df[1].astype(int) / 2 + df[2].astype(float) / 32
print (df)
0 1 2 3
0 1 2 3.4 3.106250
1 -2 2 1.1 3.034375
2 2 3 4.0 4.625000
3 -5 5 5.0 7.656250