df是以天气为列的数据库
Weather
Rain, freezing cold
Rain, and thunder
Thunderstorm, and dust
Drizzle, for half an hour
Drizzle, for sometime
Rain, non stop
Slight rain
代码
heavy_rain_indicator = ['Rain,','Thunderstorm,',]
light_rain_indicator = ['Drizzle,','Slight rain']
df['Heavy Rain Indicator'] = (df['Weather'].str.contains(heavy_rain_indicator))
df['Light Rain Indicator'] = (df['Weather'].str.contains(light_rain_indicator))
预期输出:
Weather Heavy Rain Indicator Light Rain Indicator
Rain, freezing cold TRUE FALSE
Rain, and thunder TRUE FALSE
Thunderstorm, and dust TRUE FALSE
Drizzle, for half an hour FALSE TRUE
Drizzle, for sometime FALSE TRUE
Rain, non stop TRUE FALSE
Slight rain FALSE TRUE
实际产出
TypeError: unhashable type: 'list'
----> 4 df['Heavy Rain Indicator'] = (df['Weather'].str.contains(heavy_rain_indicator))
我希望列暴雨指示器在出现暴雨指示器时为TRUE
,列小雨指示器在出现小雨指示器时为TRUE
有人建议使用isin
(然后删除了帖子),但我无法键入准确的表达式,因此对于eg的大雨指示器,我希望所有以雨开头的值都位于大雨指示器列中,以此类推。请相应地回答
str.contains
将参数作为string
但您正在传递列表您可以将
list comprehension
与any
一起使用,如下所示:更多熊猫回答:
或者,如果您希望不仅仅从一开始就查找案例:
您可以尝试以下方法:
相关问题 更多 >
编程相关推荐