python - 如何将值设置为由 python DataFrame 中的行过滤的单元格?
问题描述
import pandas as pd
df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9],[10,11,12]],columns=['A','B','C'])
df[df['B']%2 ==0]['C'] = 5
我期望此代码将列 C 的值更改为 5,无论 B 是偶数。但它不起作用。
它返回表格如下
A B C
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
我期待它回来
A B C
0 1 2 5
1 4 5 6
2 7 8 5
3 10 11 12
解决方案
如果需要使用条件和列名更改列的DataFrame
值DataFrame.loc
:
df.loc[df['B']%2 ==0, 'C'] = 5
print (df)
A B C
0 1 2 5
1 4 5 6
2 7 8 5
3 10 11 12
您的解决方案是链式索引的好例子 -文档。
推荐阅读
- python - python pandas:按行条件分组
- angular6 - 如果使用带有 Angular 6 的 ag-Grid 执行全行更新,则获取已编辑的列(带有数据)
- javascript - 是否可以使用 node js 从一个谷歌存储桶到另一个存储桶
- angular - Nginx 角码头工人
- weld - 焊缝 junit5 与焊缝 3
- python - 为什么我不能使用 Django 服务器进行生产?
- ruby - 搜索/解析 XML 并排除某些节点而不删除它们?
- c# - 如何合并具有相同数据的两行?
- javascript - 简单 JS 滑块上的递归过多
- javascript - 如何在 AJAX 函数中进行 Strtotime?和错误时刻