删除Pandas中单元格为空的行?

时间:2017-12-10 04:28:13

标签: python pandas

感谢您的帮助。

我有一个大型的csv pseuodo-patient数据集,通常看起来像这样。

 Average Covered Charges ,  Total Discharges  , Average Medicare Payments
        32963.07         ,          91        ,           4763.73 
        15131.85         ,          14        ,           4976.71 
        37560.37         ,                    ,          

我面临的问题是我试图让总放电次数大于100,但是因为其中一列的末端比其他所有小区都多一个值,最后一个小区其他列只有空白空间,它被计为数据集长度中的项目。我已将此csv文件加载到pandas数据框中,并且已删除了NA,我的数据集仍然如下所示。

所以NAs,None等等......不是问题。它是一个空单元格,它使最后两列具有数据类型" object",并且因为它有一个空白单元格/空白空间,所以无法更改"对象&# 34;数据类型为" int"

如果我可以通过删除任何列中任何空单元格的数据集中的所有行来更改我的数据框,那么我的所有问题都会消失。所以我希望我的数据集看起来像这样:

 Average Covered Charges  , Total Discharges  , Average Medicare Payments
        32963.07          ,          91       ,           4763.73 
        15131.85          ,          14       ,           4976.71 

我很难过,我很难做到这一点。但是从我读过的有关熊猫的文章来看,文档假定这些是NAs,所以我可以放弃它们,但我无法让Pandas完全相信它。

    import pandas as pd
    inpatients_df = pd.read_csv("inpatient_payment_system.csv", low_memory = False)

    inpatients_df.dropna(axis = 0, how = 'any') # Remove NA values.

我已经加载了数据集并删除了所有的NA,而不是重要的。

注意:此数据集中有超过3列。为了实现这一点,它只需要一列比其他列有更多的内容,问题实际上是在csv文件的最后一行。

3 个答案:

答案 0 :(得分:2)

试试这个:

inpatients_df.dropna(subset=['Total Discharges'], how='all', inplace = True)

答案 1 :(得分:1)

只需将其中一个列作为一个系列,并使用它:

public enum ATI
{
    Two = 0,
    Three = 1,
    Five = 2,
}

答案 2 :(得分:1)

对于这种特殊情况,您应该使用.isnumeric()方法获取适当的切片:

df[df['Total Discharges'].str.isnumeric()]

但要回答你的问题:可能是,那些你打电话为空的条目可能是空字符串,所以像

df[df['Total Discharges'] != '']

应该可以解决问题,尽管您可能希望明确检查该单元格中的值以确定。