python - 更新数据框中的多个单元格值
问题描述
我的数据集是这种形式:
df = pd.DataFrame({'ID': [1,2,3,4],
'Type': ['A', 'B', 'B', 'B'],
'Value': [100, 200, 201, 120]})
我想通过以下方式更新数据框:
df = pd.DataFrame({'ID': [1,2,3,4],
'Type': ['A', 'B1', 'B2', 'B3'],
'Value': [100, 200, 201, 120]})
我正在尝试的代码是:
df[df['Type'] == 'B', df['Value'] == 200] = 'B1'
但我收到错误:
ValueError: Cannot reindex from a duplicate axis
有人可以帮我解决问题吗?
谢谢!
解决方案
如果需要通过使用count s by和 join byB
开始的迭代器转换所有值:1
np.arange
True
sum
+
m = df['Type'] == 'B'
df.loc[m, 'Type'] += np.arange(1, m.sum()+1).astype(str)
print (df)
ID Type Value
0 1 A 100
1 2 B1 200
2 3 B2 201
3 4 B3 120
推荐阅读
- javascript - 如何在 freemysqlhosting.net 上将长数据传递到 mySql 数据库
- python - Python:如何通过无效的分隔符分割字符串<0x0c>
- c++ - webRTC c++中有自定义音频源的功能吗?
- servlets - 文件究竟何时传输到服务器?
- javascript - 连接两个 gatsby 节点
- android - 获取值 ($field) 时,Kotlin 属性处于循环中
- conv-neural-network - YOLO 的输出是如何编码的
- javascript - 在更改其属性后渲染数组项
- css - 如何在跨度标签内居中对齐锚标签?
- docker - 尝试从 docker swarm 中的 kafka 代理捕获数据时失败