Python mutiply pandas 包含科学值和浮点值的数据框
Python mutiply pandas dataframe containing scientific and float values with a float
import pandas as pd
df=pd.DataFrame({‘years’:[‘Y0’,‘Y1’,’Y2’,’Y3’],‘price1’:[0.01, 0.0029,0.00368,0.00439536],
‘price2’:[0.02, 0.001, 9.161781253394068e-04,0.001718]})
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)
由于 df 中的科学价值而出现错误,如果有人有任何建议或帮助解决此问题,请告诉我?
错误:
TypeError: Could not operate 0.75 with block values can’t multiply sequence by non-int of type ‘float’
你可以试试下面的方法吗?
df=pd.DataFrame({"years":["Y0","Y1","Y2","Y3"],
"price1":[0.01, 0.0029,0.00368,0.00439536],
"price2":[0.02, 0.001, float("9.161781253394068e-04"),0.001718]})
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)
我猜你遇到这个问题是因为类型问题。您可以尝试将列转换为 float 类型 -
import pandas as pd
df=pd.DataFrame({'years':['Y0','Y1','Y2','Y3'],'price1':[0.01, 0.0029,0.00368,0.00439536], 'price2':[0.02, 0.001, 9.161781253394068e-04,0.001718]})
# converting dtype
df['price1'] = pd.to_numeric(df['price1'], errors='coerce')
df['price2'] = pd.to_numeric(df['price2'], errors='coerce')
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)
import pandas as pd
df=pd.DataFrame({‘years’:[‘Y0’,‘Y1’,’Y2’,’Y3’],‘price1’:[0.01, 0.0029,0.00368,0.00439536],
‘price2’:[0.02, 0.001, 9.161781253394068e-04,0.001718]})
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)
由于 df 中的科学价值而出现错误,如果有人有任何建议或帮助解决此问题,请告诉我?
错误:
TypeError: Could not operate 0.75 with block values can’t multiply sequence by non-int of type ‘float’
你可以试试下面的方法吗?
df=pd.DataFrame({"years":["Y0","Y1","Y2","Y3"],
"price1":[0.01, 0.0029,0.00368,0.00439536],
"price2":[0.02, 0.001, float("9.161781253394068e-04"),0.001718]})
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)
我猜你遇到这个问题是因为类型问题。您可以尝试将列转换为 float 类型 -
import pandas as pd
df=pd.DataFrame({'years':['Y0','Y1','Y2','Y3'],'price1':[0.01, 0.0029,0.00368,0.00439536], 'price2':[0.02, 0.001, 9.161781253394068e-04,0.001718]})
# converting dtype
df['price1'] = pd.to_numeric(df['price1'], errors='coerce')
df['price2'] = pd.to_numeric(df['price2'], errors='coerce')
df.iloc[1:,1:] = df.iloc[1:,1:].mul(0.75)