【发布时间】:2020-01-14 00:14:17
【问题描述】:
我有一个包含多个 NoneType 值的数据框,我想删除所有行值和标题为 None 的所有列。我正在努力寻找一种方法来做到这一点。在下面的 MWE 中,我设法删除了所有行都为 None 的所有列,或者删除了标题为 None 的所有列。
from __future__ import annotations
import pandas as pd
d = [[1, 2, None, None, None], [4, 5, None, None, 7]]
cols = ['a', 'b', 'c', None, None]
df = pd.DataFrame(data=d, columns=cols)
print("Original: \n", df)
#Original:
# a b c NaN NaN
#0 1 2 None None NaN
#1 4 5 None None 7.0
print("\nDropped how = all: \n", df.dropna(axis=1, how="all")) # Drops column 'c'
#Dropped how = all:
# a b NaN
#0 1 2 NaN
#1 4 5 7.0
print("\nDropped None columns: \n", df[df.columns.dropna()])
#Dropped None columns:
# a b c
#0 1 2 None
#1 4 5 None
我怎样才能只删除我想删除的列并得到这个?
#Wanted:
# a b c NaN
#0 1 2 None NaN
#1 4 5 None 7.0
【问题讨论】:
-
这能回答你的问题吗? Pandas: drop columns with all NaN's