如何将方程(float)的结果保存到column,python

时间:2017-06-26 14:53:21

标签: python pandas dataframe

我有数据框外观这个:

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),但这并不起作用。

2 个答案:

答案 0 :(得分:4)

直接分配到您尝试创建的新列。

df[3] = abs(int(df[0])) +( int(df[1]) / 2 + float(df[2]) / 32)

答案 1 :(得分:0)

对于Series.astype

的投射列,我认为您需要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