如何用Pandas按条件将指定行的Year值减1(优先用.loc)
Pandas修正Q4对应的年份值
直接用.loc方法定位QUARTER为"Q4"的行,对YEAR列执行减1操作即可,完全符合你的需求:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'YEAR': [2021, 2021, 2021, 2022, 2022, 2022, 2022, 2023], 'QUARTER': ['Q1', 'Q2', 'Q3', 'Q4', 'Q1', 'Q2', 'Q3', 'Q4'], 'VALUE': [1]*8 }) # 使用.loc修改Q4对应的YEAR值 df.loc[df['QUARTER'] == 'Q4', 'YEAR'] -= 1 print(df)
运行后输出结果与你预期的转换后DataFrame一致:
YEAR QUARTER VALUE 0 2021 Q1 1 1 2021 Q2 1 2 2021 Q3 1 3 2021 Q4 1 4 2022 Q1 1 5 2022 Q2 1 6 2022 Q3 1 7 2022 Q4 1
说明
.loc[条件, 列名]可以精准定位需要修改的行和列,和你其他数据转换操作的风格保持一致- 直接对选中的
YEAR列执行-=1操作,高效且简洁
内容的提问来源于stack exchange,提问作者JayFou
相关产品推荐
相关产品推荐

