python - 为什么在按两个条件对数据框进行子集化后,无法将值应用于整个 pandas 列?

标签 python pandas

我有一个包含三列的数据框,分别代表年份、名称和 Year_2

我想根据年份和名称更改 Year_2 列的值,如下所示:

(df[(df['Year']==1980) & (df['Name'].str.contains("John"))])['Year_2']=2010

我认为这与打字是一样的

df[Year_2] = 2010

但显然我错过了一些 super 基本的东西,因为再次查看我的 dF 表明这些更改都没有被应用...希望有人让我摆脱这里的痛苦,因为我不太明白我搞乱了语法。

最佳答案

您可以尝试loc :

df.loc[(df['Year']==1980) & (df['Name'].str.contains("John")),'Year_2'] = 2010

关于python - 为什么在按两个条件对数据框进行子集化后,无法将值应用于整个 pandas 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344648/

相关文章:

python - 隐藏工作表或有效隐藏 excel 选项卡的 Pandas to_excel?

python - ElementTree/cElementTree 区别?

python 、 Pandas : Groupby Threshold Value

python - 用 Pandas 替换数据框中的值

python - 如何将python并行计算(ipython并行或多处理)的结果输出到pandas数据帧?

python - 如何获取数据框的列总和

python - python中平流方程四阶龙格-库塔编程

python - Python 中的 For 循环执行

Python循环url json数据不存储循环结果

python - 如果字段在 Python 中为空,则返回 json 字段的优雅方法