仅使用整数筛选列时,“str”和“int”的实例之间不支持python错误“<”

2024-06-01 03:13:32 发布

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

我只想在数据框中的“大小”列中过滤低于10.000.000的值

dataframe示例如下(原始文件要大得多):

N Ret upside_tri Size 0 77 0.000000 5.2256 58,019,065 1 77 0.000000 1.3836 969,692 2 77 0.000000 1.3543 12,792,661 3 77 0.000000 0.8839 5,721,553 4 77 0.000000 0.5477 6,984,648

为了只过滤值低于10.000.000的列“Size”,我运行以下代码:

df = df[df.iloc[:, 3] < 10000000]

当我运行代码以使用上述条件筛选数据帧时,我会不断收到错误“<;”“str”和“int”的实例之间不支持

列“Size”只包含整数,所以这个错误对我来说毫无意义


Tags: 文件数据代码lt示例dataframedfsize
1条回答
网友
1楼 · 发布于 2024-06-01 03:13:32

列“Size”的类型为str。首先尝试将其转换为整数:

df["Size"] = df["Size"].str.replace(",", "").astype(int)
print(df[df.iloc[:, 3] < 10000000])

印刷品:

    N  Ret  upside_tri     Size
1  77  0.0      1.3836   969692
3  77  0.0      0.8839  5721553
4  77  0.0      0.5477  6984648

或:

mask = df["Size"].str.replace(",", "").astype(int) < 10000000
print(df.loc[mask])

印刷品:

    N  Ret  upside_tri       Size
1  77  0.0      1.3836    969,692
3  77  0.0      0.8839  5,721,553
4  77  0.0      0.5477  6,984,648

相关问题 更多 >