我有一个一维数据框:
4DS.AX A2B.AX A2M.AX AAC.AX ABC.AX ABP.AX ACW.AX ADH.AX
2018-12-14 0.00 0.00 0.14 0.01 0.12 0.01 0.00 0.01
预期产量
4DS.AX A2B.AX A2M.AX AAC.AX ABC.AX ABP.AX ACW.AX ADH.AX
2018-12-14 0.00 0.00 0.28 0.02 0.24 0.02 0.00 0.02
我想将所有值乘以2
这是我的尝试:
[in] df=df.iloc[0,:]*2.0
[出]
A2B.AX A2M.AX AAC.AX ABC.AX ABP.AX
2018-12-14 0.000.00 0.140.14 0.010.01 0.120.12....
答案 0 :(得分:2)
似乎列的类型是str/object
类型,因此它是追加而不是相乘
示例
import pandas as pd
pd.DataFrame({'x':['0.1']})*2
输出:
0.10.1
而
pd.DataFrame({'x':[0.1]})*2
输出
0.2
可以检查列的类型
print(df.dtypes)
为了更改列的类型
for col in ['4DS.AX','A2B.AX','A2M.AX','AAC.AX','ABC.AX','ABP.AX','ACW.AX','ADH.AX']:
df[col] = df[col].astype('float')
然后,它也应该工作
df.iloc[0,:]*2.0