【问题标题】:dropping empty columns in pandas 0.23+ [duplicate]在熊猫 0.23+ 中删除空列 [重复]
【发布时间】:2018-08-11 07:05:35
【问题描述】:

在早期版本的 pandas 中,您可以简单地删除空列:

df.dropna(axis='columns')

但是,dropna 在以后的版本中已被贬低。现在如何从数据框中删除多个(没有专门索引)空列?

【问题讨论】:

  • dropna 没有被弃用,只有通过 axis=1 是。并且贬低消息(“传递元组或列表以放置在多个轴上。”)对我来说毫无意义。知道他们在说什么吗?
  • 您在哪里看到dropna 重复了?
  • @RafaelC pandas.pydata.org/pandas-docs/stable/generated/… 我认为它因此无法正常工作,但axis=1 也无法正常工作。

标签: python pandas


【解决方案1】:

我可以在当前版本的 Pandas (0.23.4) 中使用 dropna() 删除空列。我使用的代码是:

df.dropna(how='all', axis=1)

看起来不推荐使用的是一次通过多个轴(即df.dropna(how='all', axis = [0, 1])。你可以读到here 他们做出了这个决定——“让我们弃用传递多个轴,我们不会为任何其他 pandas 函数这样做”。

【讨论】:

  • 我一直忘记inplace。这对我有用df.dropna(inplace=True, axis=1, how='all')
【解决方案2】:

您可以获取不为空的列,然后在这些列上过滤您的 DataFrame。

这是一个例子

non_null_columns = [col for col in df.columns if df.loc[:, col].notna().any()]
df[non_null_columns]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2021-01-20
    • 2018-08-03
    • 2016-01-30
    • 2019-04-12
    • 2021-03-07
    • 2019-11-13
    相关资源
    最近更新 更多