gpt4 book ai didi

python - 从 pandas DataFrame 中删除包含空单元格的行

转载 作者:IT老高 更新时间:2023-10-28 20:30:21 31 4
gpt4 key购买 nike

我有一个通过解析一些 excel 电子表格创建的 pd.DataFrame。其中有一列有空单元格。例如,下面是该列频率的输出,32320 条记录缺少 Tenant 的值。

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

我正在尝试删除租户丢失的行,但是 .isnull() 选项无法识别丢失的值。

>>> df['Tenant'].isnull().sum()
0

该列的数据类型为“对象”。在这种情况下发生了什么?如何删除 Tenant 缺失的记录?

最佳答案

如果一个值是 np.nan 对象,Pandas 会将其识别为 null,该对象将在 DataFrame 中打印为 NaN。您的缺失值可能是空字符串,Pandas 不会将其识别为 null。要解决此问题,您可以使用 replace() 将空刺(或空单元格中的任何内容)转换为 np.nan 对象,然后调用 dropna ()在您的 DataFrame 上删除具有空租户的行。

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

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

现在我们将 Tenants 列中的所有空字符串替换为 np.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

关于python - 从 pandas DataFrame 中删除包含空单元格的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314033/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com