我有数据框架外观行:
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
中每行的结果的列表,结果类型是浮点。问题:如何将其保存到一个列或dataFrame中,并将其与result
一起添加到与df
相同的另一个数据框架中?
我尝试了pd.DataFrame(result)
,它不起作用。
直接分配给您要创建的新列。
df[3] = abs(int(df[0])) +( int(df[1]) / 2 + float(df[2]) / 32)
我认为您需要使用Series.abs
的铸件 Series.astype
:
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