首页 > 解决方案 > 如何将值设置为由 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

标签: pythonpython-3.xpandas

解决方案


如果需要使用条件和列名更改列的DataFrameDataFrame.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

您的解决方案是链式索引的好例子 -文档


推荐阅读