python - Pandas Dataframe 替换系列中的值

标签 python python-3.x pandas

我正在尝试根据条件选择更新 my_df,如下所示:

my_df[my_df['group'] == 'A']['rank'].fillna('A+')

但是,这不是持久性……例如:my_df 仍然有 NaN 或 NaT……我不确定如何就地执行此操作。请告知如何保持对 my_df 的更新。

最佳答案

创建 bool 掩码并分配给过滤列 rank:

my_df = pd.DataFrame({'group':list('AAAABC'),
                     'rank':['a','b',np.nan, np.nan, 'c',np.nan],
                     'C':[7,8,9,4,2,3]})

print (my_df)
  group rank  C
0     A    a  7
1     A    b  8
2     A  NaN  9
3     A  NaN  4
4     B    c  2
5     C  NaN  3

m = my_df['group'] == 'A'
my_df.loc[m, 'rank'] = my_df.loc[m, 'rank'].fillna('A+')

print(my_df)
  group rank  C
0     A    a  7
1     A    b  8
2     A   A+  9
3     A   A+  4
4     B    c  2
5     C  NaN  3

关于python - Pandas Dataframe 替换系列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51860592/

相关文章:

python - 如何使用 pandas 将 1M OHLC 转换为 5M OHLC

python - 在取其他列表的平均值时不能删除带有空列表的行

python - PyQt5中QUdpSocket没有writeDatagram()函数?

c# - 使用进程类从 C# 执行 python 代码

mysql - postgres 按错误分组

python-3.x - 如何使用 Python 和 Beautiful Soup 修复 html 列表片段中丢失的 ul 标签

python - 如何使用 pandas 中的 groupby 计算绝对总和?

python - 需要帮助才能在 Python 中处理超过 2 个或更多字节的字符

python - 如何在for循环python中跳过AttributeError并继续循环

python - 使用列表处理 IndexError 异常