【问题标题】:How to convert a pandas dataframe column from string to an array of floats?如何将熊猫数据框列从字符串转换为浮点数组?
【发布时间】:2020-08-19 02:13:54
【问题描述】:

我有一个数据框,其中一列是一个浮点数组。当我将 csv 文件作为 pandas 数据框读取时,特定列被识别为字符串,如下所示:

'[4816.0, 20422.0, 2015.0, 2020.0, 2025.0, 5799.0, 2000.0, 1996.0, 3949.0, 3488.0]', 
'[13047.0, 7388.0, 16437.0, 2096.0, 13618.0, 2000.0, 1996.0, 23828.0, 6466.0, 1996.0]',....

我想把这个长字符串转换成这样的浮点数组:

[4816.0, 20422.0, 2015.0, 2020.0, 2025.0, 5799.0, 2000.0, 1996.0, 3949.0, 3488.0],
[13047.0, 7388.0, 16437.0, 2096.0, 13618.0, 2000.0, 1996.0, 23828.0, 6466.0, 1996.0],...

有没有办法做到这一点?

【问题讨论】:

标签: python python-3.x pandas python-2.7 dataframe


【解决方案1】:

如果可能,最好正确读取 csv(作为浮点列表),而不是从字符串中转换它们。但是,您可以使用 evalast.literal_eval 将其转换为浮点列表:

from ast import literal_eval    
df["a"] = df["a"].apply(lambda x: literal_eval(x))

【讨论】:

  • 感谢您的回答。我很想知道如何在读取具有不同数据类型的多列的 csv 文件时将 csv 文件的特定内容作为浮点列表读取。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 2019-04-16
  • 2017-09-17
相关资源
最近更新 更多