python - 分别修改过滤器中的特定行熊猫
问题描述
我想单独修改过滤器中的行,我的想法是:
df = pd.DataFrame({'a': [2, 6, 3, 6], 'b': [3, 4, 5, 8], 'c': [1, 5, 6, 8]})
mask = (df['a']==6)
df.loc[mask].loc[0,'c']=4
df.loc[mask].loc[1,'c']=5
这样做时,我会得到 SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
但由于我已经使用 .loc ,我不知道如何解决这个问题。或者有没有做我想做的事?
谢谢
更新
原来的df看起来像
a b c
0 2 3 1
1 6 4 5
2 3 5 6
3 6 8 8
在我这样做之后
mask = (df['a']==6)
df.loc[mask].loc[0,'c']=4
df.loc[mask].loc[1,'c']=5
我的愿望输出是
a b c
0 2 3 1
1 6 4 4
2 3 5 6
3 6 8 5
亨利的代码有效,但我还是想知道有没有办法一一修改值。
df.loc[(df['a'] == 6), 'c'] = [4, 5]
解决方案
推荐阅读
- discord.js - Discord.js 如何在嵌入中使用表情符号来显示用户的存在
- kubernetes - terraform 中“kubernetes apply -k”的等价物是什么?
- python - 为特定功能设置超时时间
- azure - Azure 数据工厂 ADF 数据管道将文件名包含在将数据复制到 sql 数据库中
- python - 使用 Google Sheets API,我可以使用 get 方法从表中获取数据,但 append 方法会出错
- mysql - SQL中具有相同日期的不同值
- ios - Json字符串转换
- java - Gson如何序列化和反序列化Lombok生成的继承POJO?
- html - 如何在 Angular 中将代码的某些 HTML 部分预览为 PDF 或 DOCX 文件
- r - 无法选择已在 Shiny R 中选择的菜单项