【问题标题】:How to infer types in pandas dataframe如何推断熊猫数据框中的类型
【发布时间】:2017-09-18 15:25:46
【问题描述】:

我有一个使用pyspark 读入的数据框:

df1 = spark.read.csv("/user/me/data/*").toPandas()

不幸的是,pyspark 将所有类型保留为Object,甚至是数值。我需要将它与我用df2 = pd.read_csv("file.csv") 读入的另一个数据框合并,所以我需要完全按照熊猫所做的那样推断df1 中的类型。

如何推断现有 pandas 数据框的类型?

【问题讨论】:

    标签: python pandas apache-spark pyspark


    【解决方案1】:

    如果你有相同的列名,你可以使用pd.DataFrame.astype:

    df1 = df1.astype(df2.dtypes)
    

    否则,您需要构造一个字典,其中键是df1 中的列名,值是dtypes。您可以从d = df2.dtypes.to_dict() 开始,看看它应该是什么样子。然后构造一个新字典,根据需要更改键。

    构建字典 d 后,使用:

    df1 = df1.astype(d)
    

    【讨论】:

    • 谢谢你。如果类型是浮点数,这也会将'' 转换为 NaN 吗?这就是 pd.read_csv 所做的。
    • 我认为不会。您需要使用 pd.to_numeric(df['mycol'], errors='coerce') 手动转换该列
    猜你喜欢
    • 2022-01-18
    • 2018-10-12
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2018-07-21
    相关资源
    最近更新 更多