【问题标题】:Pandas adding NA changes column from float to objectPandas 添加 NA 将列从浮点数更改为对象
【发布时间】:2021-05-27 20:47:32
【问题描述】:

我有一个包含 float64 类型列的数据框。然后,当我运行以下命令时,它会转换为对象,最终会弄乱下游计算,其中这是分母并且有一些 0:

df.loc[some criteria,'my_column'] = pd.NA

在此语句之后,我的列现在是对象类型。有人可以解释为什么会这样,以及如何纠正吗?我宁愿第一次就做对,也不愿把它加到最后:

df['my_column'] = df['my_column'].astype(float)

谢谢。

【问题讨论】:

  • pandas docs "目前,pandas 还没有默认使用这些数据类型(在创建 DataFrame 或 Series 时,或者在读取数据时),因此您需要明确指定 dtype。一个简单的解释了转换为这些 dtypes 的方法here"

标签: python pandas type-conversion


【解决方案1】:

在 pandas 中,您可以使用 NA 或 np.nan 来表示缺失值。 np.nan 将其转换为浮动,这是您想要的以及文档所述的内容。 NA 将列转换为字符串,最适合用于 dtype 字符串列。

df.loc[some criteria,'my_column'] = np.nan

【讨论】:

  • 是的,这行得通,pd.NA 的行为仍然有点奇怪,但我会改成这个谢谢:)
猜你喜欢
  • 2021-08-11
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
  • 2016-03-31
  • 2020-02-08
  • 1970-01-01
相关资源
最近更新 更多