【发布时间】:2022-10-04 16:02:39
【问题描述】:
d = {'status': {0: 'No', 1: 'No', 2: 'Yes', 3: 'No'}, 'time': {0: "['Morning', 'Midday', 'Afternoon']", 1: nan, 2: "[]", 3: nan}, 'id': {0: 1, 1: 5, 2: 2, 3: 3}}
df = pd.DataFrame(d)
df 是数据框。都是对象类型。
我需要从数据框的所有列中检查 not na 和 not empty list。 我做了以下尝试 -
df['no_nans'] = ~pd.isna(df).any(axis = 1)
print(df['no_nans'])
True
False
True
False
它应该如下 -
True
False
False
False
由于时间列在第三行中有 [] 空白列表,因此它没有通过 isna() 检查。
有没有一种简单易行的方法来正确放置此检查? 提前感谢您的帮助。
【问题讨论】:
-
[] 不是时间列中的空白列表...而是字符串 '[]' &反正... isna() 不会检查其中任何一个...
标签: python pandas list dataframe isnan