Python pandas 更改数据框值

标签 python pandas dataframe data-analysis

我正在查询如下数据框:

>>> df
    A,B,C
    1,1,200
    1,1,433
    1,1,67
    1,1,23
    1,2,330
    1,2,356
    1,2,56
    1,3,30

如果我执行part_df = df[df['A'] == 1 & df['B'] == 2],我可以获得一个子数据帧

 >>> part_df
    A, B, C
    1, 2, 330
    1, 2, 356
    1, 2, 56

现在我想对part_df进行一些更改,例如:

part_df['C'] = 0

这些更改根本没有反射(reflect)在原始 df 中。我想这是因为 numpy 的数组机制,每次都会生成数据帧的新副本。我想知道如何在某些条件下查询数据框并对所选部分进行更改(如我提供的示例所示)并将值反射(reflect)回原始数据框?

最佳答案

你应该这样做:

In [28]:

df.loc[(df['A'] == 1) & (df['B'] == 2),'C']=0
df
Out[28]:
   A  B    C
0  1  1  200
1  1  1  433
2  1  1   67
3  1  1   23
4  1  2    0
5  1  2    0
6  1  2    0
7  1  3   30

[8 rows x 3 columns]

您应该使用loc并在末尾的方括号中选择感兴趣的列“C”

关于Python pandas 更改数据框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23800080/

相关文章:

python - 如果在 Windows 上导入 python 包,Apache 将无法工作

python - 用文本替换 HTML 链接

python - 一旦达到特定值,就删除高于特定值的行

python - Pandas:更好的交叉连接方式?

python - 按日期对列进行排序

r - 如何为整个数据框指定 pivot_wider?

python - 读取 csv 文件,其中列名称作为一列单元格值

python - -1 返回 python 列表中倒数第二个项目

python - 从 DataFrame 中提取自定义标题列名称,用 NA 估算缺失的列

python - Python按列合并不同大小的表