使用for循环根据列表从数据框中删除行

时间:2020-05-14 18:34:23

标签: python for-loop

我在名为“ tweet_archive”的数据框中有一个ID为ID的推文列表。与这些ID相关的某些推文已被删除,这削弱了我要执行的分析。我已经创建了需要删除的tweet列表,称为“ deleted_tweets”,我试图使用for循环从数据框中删除这些行,但是似乎没有任何作用。我在下面包含了我的代码。我确定列表“ deleted_tweets”的长度为25,所以我试图遍历该列表的每一行,如果tweet_id与列表中的一个匹配,则从“ tweet_archive”数据框中删除这些tweet。但是,当我尝试此操作时,出现以下错误

“ ValueError:系列的真值不明确。请使用a.empty,a.bool(),a.item(),a.any()或a.all()。”

for x in range(0, 24):
if tweet_archive.tweet_id == deleted_tweets[x]:
    tweet_archive = tweet_archive[tweet_archive.tweet_id != x]

1 个答案:

答案 0 :(得分:0)

不使用for循环

import numpy as np
import pandas as pd
>>> df = pd.DataFrame(np.arange(25).reshape(5, 5))
>>> df
    0   1   2   3   4
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
3  15  16  17  18  19
4  20  21  22  23  24
>>> df.drop([1,3]) # [1,3] --> delete_list index
    0   1   2   3   4
0   0   1   2   3   4
2  10  11  12  13  14
4  20  21  22  23  24
>>> df = df.drop([1,3])