Python Pandas DataFrame如何删除空单元格?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1273)

我有一个通过解析一些Excel电子表格创建的pd.DataFrame:

   In [67]: value_counts(Tenant,normalize=False)
   Out[67]:
                              32320
   Thunderhead                8170
   Big Data Others            5700
   Cloud Cruiser              5700
   Partnerpedia               5700
   Comcast                    5700
   SDP                        5700
   Agora                      5700
   dtype: int64

我正在尝试删除Tenant缺失的行,但isnull选项无法识别缺少的值:

   In [71]: df['Tenant'].isnull().sum()
   Out[71]: 0
提问于
用户回答回答于

为了演示,我创建了一个DataFrame,其中包含一些随机值和一Tenants列中的一些空字符串:

>>> import pandas as pd
>>> import numpy as np
>>> 
>>> df = pd.DataFrame(np.random.randn(10, 2), columns=list('AB'))
>>> df['Tenant'] = np.random.choice(['Babar', 'Rataxes', ''], 10)
>>> print df

          A         B   Tenant
0 -0.588412 -1.179306    Babar
1 -0.008562  0.725239         
2  0.282146  0.421721  Rataxes
3  0.627611 -0.661126    Babar
4  0.805304 -0.834214         
5 -0.514568  1.890647    Babar
6 -1.188436  0.294792  Rataxes
7  1.471766 -0.267807    Babar
8 -1.730745  1.358165  Rataxes
9  0.066946  0.375640         

现在我Tenantsnp.nan对象替换列中的任何空字符串,如下所示:

>>> df['Tenant'].replace('', np.nan, inplace=True)
>>> print df

          A         B   Tenant
0 -0.588412 -1.179306    Babar
1 -0.008562  0.725239      NaN
2  0.282146  0.421721  Rataxes
3  0.627611 -0.661126    Babar
4  0.805304 -0.834214      NaN
5 -0.514568  1.890647    Babar
6 -1.188436  0.294792  Rataxes
7  1.471766 -0.267807    Babar
8 -1.730745  1.358165  Rataxes
9  0.066946  0.375640      NaN

现在我可以删除空值:

>>> df.dropna(subset=['Tenant'], inplace=True)
>>> print df

          A         B   Tenant
0 -0.588412 -1.179306    Babar
2  0.282146  0.421721  Rataxes
3  0.627611 -0.661126    Babar
5 -0.514568  1.890647    Babar
6 -1.188436  0.294792  Rataxes
7  1.471766 -0.267807    Babar
8 -1.730745  1.358165  Rataxes
用户回答回答于

你可以把它们过滤掉:

filter = df["Tenant"] != ""
dfNew = df[filter]

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励