python数据框 - 删除不需要的unicode行

时间:2017-09-21 17:06:08

标签: python pandas unicode

我有一个专栏"名称"在数据框中。 我想删除所有的行,它的名字不在names_all中:

names_all = ['alice', 'bob', 'david']

names_all中的所有字符串和数据帧都是unicode字符串。

我写了代码:

for index, row in history.iterrows():
    if row['name'] not in names_all:
        history.drop(index, inplace=True)

但出于某种原因,它做的很奇怪。它丢弃了太多行(丢弃了所有1700行和更多行)。 在我将所有字符串编码为unicode之前,它也做了一些奇怪的事情,但不是那么多。

2 个答案:

答案 0 :(得分:1)

解决方案1:

history = history[history['name'].isin(names_all)]

解决方案2:

history = history.query("name in @names_all"]

答案 1 :(得分:1)

为什么不选择与names_all匹配的内容:

history = history.loc[history.name.isin(names_all)]