【发布时间】:2020-05-11 14:27:09
【问题描述】:
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(然后删除了帖子),但我无法输入确切的表达式,因此对于大雨指示器,例如,我希望所有以 Rain 开头的值,都在重型指示器列中等等。请相应回答
【问题讨论】:
-
这能回答你的问题吗? Python, TypeError: unhashable type: 'list'