如何使用 Pandas 过滤 NaN 值

问题描述 投票:0回答:1

大家

我尝试了不同的方法,但没有一个给我所需的结果。我肯定在这里做错了什么。

想象以下数据框:

import pandas as pd
df = pd.DataFrame(columns = ['A','B','C'], index = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'])

df.loc[['Monday', 'Friday'], ['A', 'C']] = 19

我想打印所有不是 NaN 的列和行。输出应如下所示:

      A   C 

星期一 19 19 星期五 19 19

请帮忙。

我已经尝试过这个,但它不起作用: df[(df.iloc[::]) & (df.isnull() == False)] df = df[df.df.isna()]

python-3.x pandas dataframe filtering nan
1个回答
0
投票

您的代码:

import pandas as pd
df = pd.DataFrame(columns = ['A','B','C'], index = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'])
df.loc[['Monday', 'Friday'], ['A', 'C']] = 19
print(df)

输出:

             A    B    C
Monday      19  NaN   19
Tuesday    NaN  NaN  NaN
Wednesday  NaN  NaN  NaN
Thursday   NaN  NaN  NaN
Friday      19  NaN   19

将其添加到您的代码中:

stacked = df.stack()
stacked = stacked.dropna()
df = stacked.unstack()
print(df)

输出:

         A   C
Monday  19  19
Friday  19  19
© www.soinside.com 2019 - 2024. All rights reserved.