0

我有一个熊猫数据框,其中一些值是整数,其他值是数组。我只是想在我的“ORIGIN_AIRPORT_ID”列中删除包含数组(我相信的对象数据类型)的所有行,但是在尝试了许多方法后我无法弄清楚如何做到这一点。

这是我的数据框的前 20 行的样子。像列表一样显示的值是我要删除的值。数据集有几百万行,所以我只需要编写代码,如果有意义的话,删除该特定数据框列中的所有类似数组的值。

数据框

4

2 回答 2

0

下次你应该考虑给我们一个文本数据样本,而不是一个数字。我们更容易测试您的示例。

原始数据:

    ITIN_ID             ORIGIN_AIRPORT_ID
0  20194146                         10397
1  20194147                         10397
2  20194148                         10397
3  20194149  [10397, 10398, 10399, 10400]
4  20194150                         10397

在您的情况下,您可以使用.to_numericpandas 函数:

df['ORIGIN_AIRPORT_ID'] = pd.to_numeric(df['ORIGIN_AIRPORT_ID'], errors='coerce')

它将无法转换为数字的每个单元格替换为NaN ( Not a Number ),因此我们得到:

    ITIN_ID  ORIGIN_AIRPORT_ID
0  20194146            10397.0
1  20194147            10397.0
2  20194148            10397.0
3  20194149                NaN
4  20194150            10397.0

现在要删除这些行,只需使用.dropna

df = df.dropna().astype('int')

这会产生您想要的 DataFrame

    ITIN_ID  ORIGIN_AIRPORT_ID
0  20194146              10397
1  20194147              10397
2  20194148              10397
4  20194150              10397
于 2020-10-07T20:44:08.560 回答
0
df = df[df.origin_airport_ID.str.contains(',') == False]
于 2020-10-07T20:13:19.097 回答