我想标识包含列表中字符串的数据框列的所有行。对于一个字符串,可以通过
df['Column Name'].str.contains('string_to_find')
但是,.str.contains不接受列表作为输入,这会迫使我遍历列表。我找到的解决方案如下:
import pandas as pd
df = pd.DataFrame(['Mexico', 'Province of Ontario', 'NY', 'Alaska', 'ONT', 'Quebec', 'QC', 'Quebec (Province)'],
columns=['Province'])
province_filter_list = ['ONT', 'QC', 'Quebec']
df['Indicator'] = False
for x in province_filter_list:
df['Indicator'] = df['Indicator'] | df['Province'].str.contains(x, case=False)
我想做的是
df['Indicator'] = df['Province'].str.contains(province_filter_list, case=False)
输出应如下所示:
index Province Indicator
0 Mexico False
1 Province of Ontario True
2 NY False
3 Alaska False
4 ONT True
5 Quebec True
6 QC True
7 Quebec (Province) True
我的问题是:有没有比使用.str.contains的for循环更好更简单的方法
你可以试试这个
相关问题 更多 >
编程相关推荐