将熊猫的列从非空对象转换为浮点

时间:2020-06-11 19:35:06

标签: python pandas

我在将值从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)

2 个答案:

答案 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