Pandas Dataframe:删除具有 0.0 浮点类型值的选定行

问题描述 投票:0回答:2

我有一个包含浮点类型金额的数据集。有些行包含值 0.00,因为它们扭曲了数据集,所以我需要删除它们。我已暂时将“金额”设置为索引并对值进行排序。 之后,我尝试在使用 iloc 进行子集化后删除行,但收到以下形式的错误消息 ValueError: 缓冲区的维数错误(预期为 1,得到 3)

'''mortgage = Mortgage.set_index('总贷款金额').sort_values('总贷款金额') Mortgage.drop([mortgage.loc[0.0]])'''

我同样尝试过这个: '''mortgage.drop(mortgage.loc[0.0])''' 它标记了表单的错误 KeyError: "[Column_names] not found in axis"

请问我还能怎样完成任务?

python-3.x pandas dataframe subset delete-row
2个回答
1
投票

您可以创建一个布尔框架,然后使用任何

df = df[~(df == 0).any(axis=1)]

在此代码中,数据中至少有一个零的所有行都已被删除。这是应对挑战的简单方法。


0
投票

让我看看是否解决了您的问题。我创建了这个示例数据集:

df = pd.DataFrame({'Values': [200.04,100.00,0.00,150.15,69.98,0.10,2.90,34.6,12.6,0.00,0.00]})
df
    Values
0   200.04
1   100.00
2     0.00
3   150.15
4    69.98
5     0.10
6     2.90
7    34.60
8    12.60
9     0.00
10    0.00

现在,为了摆脱 0.00 值,您只需执行以下操作:

df = df[df['Values'] != 0.00]

输出:

df
    Values
0   200.04
1   100.00
3   150.15
4    69.98
5     0.10
6     2.90
7    34.60
8    12.60
© www.soinside.com 2019 - 2024. All rights reserved.