如何过滤NA值并将其添加到新的DataFram

2024-06-16 09:51:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.csv格式的输入数据集,我正试图用python输入它并进行一些数据分析。示例格式如下:

col1   col2   col3   col4   col5
 1      0      0      1      NA
 2      3      5      1      NA
 1      1      4      6      NA
 7      8      9      1      1 
 12     13     0      34     5
 4      5      6      1      2

如果你看到了,第5列有NA值。我需要单独过滤这个NA值,这样hana值的所有行都应该从这个dataframe中删除并复制到新的dataframe中,这样生成的dataframe应该如下所示:

具有NA值的数据帧:

^{pr2}$

没有NA值的数据帧:

    col1   col2   col3   col4   col5
     7      8      9      1      1 
     12     13     0      34     5
     4      5      6      1      2

我应该得到上面提到的两个数据帧,这将用于我的进一步分析。我正在寻找python-pandas代码,以编程方式实现这些方法。有人能帮我吗?在


Tags: csv数据示例dataframepandas格式col2col3
1条回答
网友
1楼 · 发布于 2024-06-16 09:51:37

假设读入后,col5包含真正的nan而不是字符串NA,您可以简单地使用它们是否为null来从df中进行选择:

>>> key = df["col5"].isnull()
>>> df_NA = df.loc[key]
>>> df_notNA = df.loc[~key]
>>> df_NA
   col1  col2  col3  col4  col5
0     1     0     0     1   NaN
1     2     3     5     1   NaN
2     1     1     4     6   NaN
>>> df_notNA
   col1  col2  col3  col4  col5
3     7     8     9     1   1.0
4    12    13     0    34   5.0
5     4     5     6     1   2.0

或者,您可以使用groupby,这在这里可能有点过分了,但是当需要考虑的情况不止两个时,它会很好地工作:

^{pr2}$

相关问题 更多 >