【问题标题】:read pandas colum with number values and missing data as string读取带有数值和缺失数据的 pandas 列作为字符串
【发布时间】:2019-04-30 04:35:56
【问题描述】:

我的数据框中有一个 Id 列,如下所示:

a = pandas.DataFrame([12673, 44, 847])

此数据有一些缺失值。如果 I Keep_default_NA = True,那么缺失值用 NaN 填充,数据读取为 float,因此值会变为

12673.0 , 44.0, 847.0

这是不需要的(我想删除 NA 值并转换为 str/obj,因为 id 可以是任意长度)。 如果我keep_default_NA = False,那么其他列(例如布尔值)都成为对象,我必须比较字符串值以找出真/假值。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果你想要 NaN 值,你必须有浮点数。 https://stackoverflow.com/a/38003951/3841261

    使用“keep_default_NA = True”,然后在删除 NaN 后,将该列转换为整数。

    【讨论】:

      【解决方案2】:

      如果没有更好的数据样本,我无法确定,但也许这会有所帮助:

      首先您读取保留 dtype 的数据,然后基本上再次读取它以获得正确的 id如果您的布尔列也缺少值(空字符串),您将需要使用 @987654322 转换这些行@.

      df1 = pd.read_csv("test.csv", keep_default_na=True).dropna()
      df2 = pd.read_csv("test.csv", keep_default_na=False)
      df1["id"] = df2.loc[df1.index]["id"]
      df = pd.DataFrame(df1.to_dict())
      

      如果您不想读两次,可以使用keep_default_na=False 读入,然后过滤掉带有空字符串的行并将每一列转换为所需的dtype 或df = pd.DataFrame(df1.to_dict())

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-31
        • 2020-06-27
        • 2018-07-24
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        相关资源
        最近更新 更多