熊猫.loc []。index

时间:2020-11-01 21:44:15

标签: python pandas dataframe

在指定的列中查找和放置多个字符串的最有效方法(使用最少的行数)是什么?

有关可能会帮助您的.tsv数据集的信息

'tconst' =电影ID

“区域” =电影在其中发行的区域

“语言” =电影的语言

这是我现在拥有的:

origin.drop(origin.columns[[1,2,5,6,7]], axis=1, inplace=True)
origin.columns = ['tconst','region','language']
origin.drop(origin.loc[origin['region']!=('US')].index, inplace=True)

我正在尝试将'region'列下的所有行都包含不讲英语的国家/地区的字符串值缩写。例如,将不等于'US','UK','AUS'等的所有行删除。我已经试过了括号内的&和or操作数,它们倾向于只选择和删除我放入其中的一个字符串值。

其他问题:

“语言” 列包含大量的空值(我不太在乎),但是有些行包含'en'英语。 如果地区” 恰好是一个非英语国家该语言是英语,那么如何防止这些行被也要删除?

1 个答案:

答案 0 :(得分:1)

假设我正确理解了您的问题,并且如果希望保留指定的条件,则希望删除整行,则可以将它们写为像这样的掩码

cond1 = origin['region'].isin(['US', 'UK', 'AUS'])
cond2 = origin['language'] == 'en'

将它们(您希望至少一个条件为真以便连续)与|组合在一起

result = origin[cond1 | cond2]

当然,如果您愿意,也可以将其写成一行:

result = origin[(origin['region'].isin(['US', 'UK', 'AUS'])) | (origin['language'] == 'en')]