【问题标题】:Reading from CSV and assigning to variables从 CSV 读取并分配给变量
【发布时间】:2021-02-22 06:20:43
【问题描述】:

我有一个由 CSV 构建的 pandas DataFrame。其中的一列具有不同数据类型的值。

例如:

data =
      val
key
0      6
1      y
2     1.0

我用过

a, b, c = pd.data.val.tolist()

它将每个值都视为字符串。

如何将 6 读作 int y 读作 str 并将 1.0 读作 float?

【问题讨论】:

  • 列上的数据类型设置是否正确?
  • 什么意思?我认为是这样。在 CSV 中,值为 6、y、1.0。
  • csv 没有数据类型。当你把它改成df时,类型是否正确?
  • 我认为是的。如果我打印 DataFrame,则会显示上述输出。这不是说它是正确的吗?
  • df.info() 应该告诉你

标签: python pandas list dataframe csv


【解决方案1】:

您可以使用pd.to_numeric,然后使用combine_first

pd.to_numeric(data['val'],errors='coerce').combine_first(data['val']).values.tolist()

【讨论】:

  • 工作就像一个魅力。谢谢。我通过阅读文档对此的理解是,它采用val 列并将非数值替换为NaN,并将Nans 替换为val 中的非数值,然后将这些值转换为列表。如果我错了,请纠正我。
  • ints 可以读作int 吗?默认情况下,将所有数字读取为浮点数。
  • @Shreshta 是的,你的第一条评论是对的,但如果列中的所有值都是 int 则第二条是可能的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多