我在将值从object转换为float时遇到了一些困难!
我看到了一些例子,但我无法得到它。
我想要一个for循环来转换所有列中的值。
我还没有脚本,因为我看到了不同的方法
Terawatt-hours Total Asia Pacific Total CIS Total Europe
2000 0.428429 0 0.134473
2001 0.608465 0 0.170166
2002 0.829254 0 0.276783
2003 1.11654 0 0.468726
2004 1.46406 0 0.751126
2005 1.85281 0 1.48641
2006 2.29128 0 2.52412
2007 2.74858 0 3.81573
2008 3.3306 0 7.5011
2009 4.3835 7.375e-06 14.1928
2010 6.73875 0.000240125 23.2634
2011 12.1544 0.00182275 46.7135
我尝试过:
df = pd.read_excel(r'bp-stats-review-2019-all-data.xls')
columns = list(df.head(0))
for i in range(len(columns)):
df[columns[i]].astype(float)
答案 0 :(得分:1)
您不清楚要转换的列的问题,因此,我在您的屏幕截图中分享了第一列的示例。
df['Terawatt-hours'] = df.Terawatt-hours.astype(float)
或与其他任何列相同。
编辑
要在数据框上创建循环并为所有列更改该循环,可以执行以下操作:
生成虚拟数据帧
df = pd.DataFrame(np.random.randint(0, 100, size=(20, 4)), columns=list('abcd'))
检查数据框中的列类型:
for column in df.columns:
print(df[column].dtype)
将所有列的类型更改为浮动
for column in df.columns:
df[column] = df[column].astype(float)
答案 1 :(得分:0)
您的问题不清楚吗?您尝试将哪些列转换为float并发布已完成的操作。
编辑:
您尝试过的方法一直到代码最后一行未能重新分配列为止。
df[columns[i]] = df[columns[i]].astype(float)
还尝试使用df.columns
而不是list(df.head(0))
来获取列名
here到熊猫文档的链接,有关如何将熊猫对象转换为指定的dtype