【问题标题】:pandas to_numeric a large wide dataframepandas to_numeric 一个大的宽数据框
【发布时间】:2023-02-13 20:23:56
【问题描述】:

我需要将 pd.to_numeric 应用于长宽(1000 多列)数据框,其中无效值被强制为 NaN。

目前我正在使用

df.apply(pd.to_numeric, errors="coerce")

由于列数,这可能需要大量时间。

df.astype()

也不起作用,因为它不采用 coerce 选项。

任何评论表示赞赏。

【问题讨论】:

  • 您是否尝试过使用 pyspark?可能会帮助你。
  • @tornikekharitonishvili 对这个特定任务有什么参考吗?
  • 你有多少列和行?形状
  • 600万*1000
  • 当然,对于这样的数量,您应该使用 pyspark。它在大数据上比 Pandas 更快。

标签: pandas dataframe


【解决方案1】:

正如已经评论过的那样,您正在处理的数据量使得 pandas 转换非常困难不是非常慢。 我建议您在本地计算机中设置一个 PySpark 会话,转换 DataFrame 列类型,如果您确实需要,最后继续转换为 Pandas。

在 PySpark 中,您可以通过执行以下操作将所有数据框的列转换为浮动:

df = df.select(*(col(c).cast("float").alias(c) for c in df.columns))

之后,您可以将 DataFrame 保存回您想要的位置(或者坚持使用 PySpark 并加入群组!):

df.toPandas().to_csv('my_file.csv')

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 2018-07-10
    • 2016-08-17
    • 2017-10-03
    • 2018-07-09
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多