移除空单元格行的Pandas操作?

2024-03-29 02:20:55 发布

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

谢谢你的帮助。在

我有一个很大的csv伪幻觉病人数据集,通常看起来像这样。在

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

我面临的问题是,我试图得到总放电数大于100。。。但是,由于其中一列的末尾比所有其他单元格多了一个值,所以其他列的最后一个单元格只有一个空白空间,这将作为数据集长度中的一个项进行计数。我已经将这个csv文件加载到pandas数据框中,并删除了NAs,我的数据集仍然是这样的。在

所以,没有,等等。。。不是问题。它是一个空单元格,它使最后两列的数据类型为“object”,并且因为它有一个空白单元格/空白空间,所以不可能将“object”数据类型更改为“int”

若我可以通过删除数据集中任何列中有空单元格的所有行,将数据帧改成这样,那个么我的所有问题都会消失。所以我希望我的数据集是这样的:

^{pr2}$

我很惊讶我这么难做这件事。但从我所读到的关于熊猫的资料来看,文件假设那些是NAs,所以我可以直接扔掉它们,但我根本不能让熊猫相信这一点。在

    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.

我已经加载了数据集并删除了所有的NAs,这并不重要。在

注意:这个数据集中有超过3列的数据。只需要一列包含比其他列更多的entre就可以了,问题实际上发生在csv文件的最后一行。在


Tags: 文件csv数据pandasdfobject空间空白
3条回答

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

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

但要回答您的问题:很有可能,您称为空的条目可能是空字符串,因此类似于

^{pr2}$

应该做到这一点,尽管您可能希望显式地检查该单元格中的值以确保。在

试试这个:

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

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

pd.to_numeric(df['Total Discharges'], errors='coerce').dropna() > 100).sum()

相关问题 更多 >