繁体   English   中英

使用Python熊猫跳过CSV文件中的行

[英]Skipping rows in a csv file using Python Pandas

我有一个关于使用Pandas读取csv文件的快速问题。 我拥有的CSV文件的格式为:

Num  Date     Value1   Value2   Value3 
1   7/29/11    1        2        3       
2   7/22/11    NA       3        1       
3   7/15/11    5        NA       NA  
4   7/6/11    -1        0        2

我想使用熊猫阅读此csv文件。 但是,我需要跳过具有任一列条目作为NA的行(在这种情况下,我需要跳过第2和3行)。

谢谢!

正如@Rutger指出的那样,您可以简单地使用dropna

In [11]: df.dropna(subset=['Value1', 'Value2', 'Value3'])
Out[11]:
   Num     Date  Value1  Value2  Value3
0    1  7/29/11       1       2       3
3    4   7/6/11      -1       0       2

我建议的初始方式(这显然不是最佳方法),当您将其作为DataFrame读入后,可以使用notnull删除这些行(您只想保留全部为notnull那些行):

In [21]: df.loc[:, ['Value1', 'Value2', 'Value3']].apply(pd.notnull)
Out[21]:
  Value1 Value2 Value3
0   True   True   True
1  False   True   True
2   True  False  False
3   True   True   True

In [22]: df.loc[:, ['Value1', 'Value2', 'Value3']].apply(pd.notnull).all(1)
Out[22]:
0     True
1    False
2    False
3     True
dtype: bool

并仅选择那些行:

In [23]: df[df.loc[:, ['Value1', 'Value2', 'Value3']].apply(pd.notnull).all(1)]
Out[23]:
   Num     Date  Value1  Value2  Value3
0    1  7/29/11       1       2       3
3    4   7/6/11      -1       0       2

In [24]: df = df[df.loc[:, ['Value1', 'Value2', 'Value3']].apply(pd.notnull).all(1)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM