简要背景:我刚开始使用Pandas读取csv数据文件。我能够通过读取csv来创建数据框,但现在我只想使用数据集的特定列进行一些计算。
有没有办法创建一个新的数据框,我只使用相关列不是NA或0的行?例如,想象一个类似于:
的数组 blah blah1 blah2 blah3
0 1 1 1 1
1 NA NA 1 NA
2 1 1 1 1
所以说我想在列#34; blah1"下使用数据。和" blah2",但我想只使用第0行和第2行,因为1在列下面有一个NA" blah"。
有一种简单的方法吗?谢谢!
修改(澄清): - 我事先并不知道我想删除第1行,因此我需要能够检查NA值(以及可能的任何其他占位符值,而不仅仅是它是否为null)。
答案 0 :(得分:1)
是的,您可以使用dropna
#include <stdio.h>
#define N 50
main()
{
int prime[N] ;
int j ;
int k ;
int n ;
int quo,rem ;
P1: prime[0] = 2 ;
n = 3 ;
j = 0 ;
P2: j = j+1 ;
prime[j] = n ;
P3: if (j == (N-1)) goto P9 ;
P4: n = n + 2 ;
P5: k = 1 ;
P6: quo = n / prime[k] ;
rem = n % prime[k] ;
if (rem == 0) goto P4 ;
P7: if (quo <= prime[k]) goto P2 ;
P8: k = k+1 ;
goto P6 ;
P9: for(j=0 ; j < N ; j++) printf("%d ",prime[j]) ;
}
并选择列使用此:
df = df.dropna(axis = 1)
现在df = df[["blah1", "blah2"]]
仅包含cols df
和"blah1"
以及行"blah2"
和0
要将NaN验证限制为某些列,您可以使用2
。
isnull()
mask = df[["blah1", "blah2"]].isnull().all(axis=1)
df = df[~mask]