仅从Pandas Dataframe获取相关数据

时间:2016-03-19 21:25:42

标签: python csv pandas dataframe

简要背景:我刚开始使用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)。

1 个答案:

答案 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

编辑1

要将NaN验证限制为某些列,您可以使用2

isnull()

编辑2

mask = df[["blah1", "blah2"]].isnull().all(axis=1)
df = df[~mask]