【问题标题】:Error using conditional values in pandas dataframe在熊猫数据框中使用条件值时出错
【发布时间】:2018-08-13 15:00:15
【问题描述】:

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

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

熊猫新手,如果有任何见解,将不胜感激。

谢谢!

【问题讨论】:

    标签: python pandas conditional


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多