【问题标题】:Python Pandas - Can you use .loc and ignore indexes?Python Pandas - 您可以使用 .loc 并忽略索引吗?
【发布时间】:2022-11-30 06:04:25
【问题描述】:

我正在尝试用

file1_backup_df.loc[file1_backup_df['CustName'].str.contains('bbb', case=False), 'CustomerName'] = 'Big Boy Booty'

现在以上适用于单个数据帧(file1_backup_df)。但是我正在像这样组合数据框;

frames = [add_backup_name(), file1_backup_df]
final_df = pd.concat(frames)

我想在final_df 上执行第一行代码。但我不能。

它抱怨

__setitem__
indexer = self._get_setitem_indexer(key)`.

ValueError: Cannot mask with non-boolean array containing NA / NaN value

有没有办法替换我的组合 df 的列中的字符串?

我试过了,但不行;

pd.concat(frames, ignore_index=True)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    似乎列 CustomerName 包含一些 NaN 值,因此您需要在 pandas.Series.str.contains 中设置 na=False :

    尝试这个 :

    final_df.loc[final_df['CustName'].str.contains('bbb', case=False, na=False), 'CustomerName'] = 'Big Boy Booty'
    

    【讨论】:

      猜你喜欢
      • 2015-02-14
      • 2023-02-08
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 2017-06-20
      • 2019-04-17
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多