在 pandas 数据框中使用条件值时出错

Error using conditional values in pandas dataframe

我正在尝试使用以下代码设置一个新列,如果单词 Thunderstormwdf['Notes'] 列中,则 wdf['Thunder'] 设置为 wdf['RngT] 的值.但是,我不断收到错误 TypeError: argument of type 'float' is not iterable。 None 的列是浮点数。 RngT 是一个int,Notes 是一个对象。完整代码是:

wdf['Thunder'] = [wdf['RngT'] if 'Thunderstorm' in x else 0 for x in wdf['Notes']]

pandas 的新手,如有任何见解,我们将不胜感激。

谢谢!

您可以考虑一个高性能的替代方案,np.where:

wdf['Thunder'] = np.where(
    wdf['Notes'].astype(str).str.contains('Thunderstorm'), wdf['RngT'], 0
)

请注意,您的第一种方法可能行不通,因为您的专栏混合了字符串和浮点数。在检查包含之前使用 astype(str) 应该可以解决这个问题。