根据Pandas中的字符串列表过滤出行
发布于 2021-01-29 17:47:15
我有一个很大的时间序列数据帧(称为 df ),前5条记录如下所示:
df
stn years_of_data total_minutes avg_daily TOA_daily K_daily
date
1900-01-14 AlberniElementary 4 5745 34.100 114.600 0.298
1900-01-14 AlberniWeather 6 7129 29.500 114.600 0.257
1900-01-14 Arbutus 8 11174 30.500 114.600 0.266
1900-01-14 Arrowview 7 10080 27.600 114.600 0.241
1900-01-14 Bayside 7 9745 33.800 114.600 0.295
目标:
我正在尝试删除 “ stn” 列中存在列表中 任何 字符串 的
行。因此,我基本上是在尝试过滤此数据集,以使其不包含以下列表中包含任何字符串的行。
尝试:
remove_list = ['Arbutus','Bayside']
cleaned = df[df['stn'].str.contains('remove_list')]
返回值:
出[78]:
stn years_of_data total_minutes avg_daily TOA_daily K_daily
date
没有!
我尝试了一些引号,方括号甚至是lambda函数的组合;尽管我还很新,所以可能没有正确使用语法。
关注者
0
被浏览
43
1 个回答
-
使用isin:
cleaned = df[~df['stn'].isin(remove_list)] In [7]: remove_list = ['Arbutus','Bayside'] df[~df['stn'].isin(remove_list)] Out[7]: stn years_of_data total_minutes avg_daily \ date 1900-01-14 AlberniElementary 4 5745 34.1 1900-01-14 AlberniWeather 6 7129 29.5 1900-01-14 Arrowview 7 10080 27.6 TOA_daily K_daily date 1900-01-14 114.6 0.298 1900-01-14 114.6 0.257 1900-01-14 114.6 0.241