考虑以下 Pandas DataFrame:
| val1 | val2 | val3 | val4
------------------------------------
'a' | 1 | NaN | NaN | NaN
'b' | 12 | 5 | NaN | 4
'c' | 3 | 6 | NaN | NaN
'd' | 4 | 7 | 6 | NaN
'f' | 1 | 8 | 7 | 10
我怎样才能得到有值的行和Nan列。我找了几个小时,但所有的问题、答案和博客都是关于获取包含值的所有行或所有列NaN。
我做了以下代码:
row_has_NaN = df.isnull().any(axis=1)
rows_list = df[row_has_NaN].index.values # Rows
for row in rows_list:
print(row)
row_series = df.loc[row]
columns_has_NaN = row_series.isnull()
columns_list = row_series[columns_has_NaN].index.values # Columns by Row
to_print = '\n\t'.join(columns_list)
print(f"\t{to_print}")
所以我得到:
a
val2
val3
val4
b
val3
c
val3
val4
d
val4
但我想知道是否有更 Pythonic 或更简洁的方法来做到这一点。提前致谢
PIPIONE
相关分类