在指定的列中查找和放置多个字符串的最有效方法(使用最少的行数)是什么?
有关可能会帮助您的.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'英语。 如果“ 地区” 恰好是一个非英语国家但该语言是英语,那么如何防止这些行被也要删除?
答案 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')]