python - 根据前一行 python 数据框中存在的年份格式化月份

标签 python pandas dataframe

对于下面的内容,有没有办法根据索引 0 中的值将 12 月之前的月份格式化为“DEC-2017”,并将 12 月之后的月份格式化为“JAN-2018”?我使用的是 Python 2.7。

import pandas as pd
df = pd.DataFrame([['2017-18','','','','','','','','','','',''], ['APR', 'MAY', 'JUN', 'JULY', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC', 'JAN', 'FEB', 'MAR']])

输出应如下所示:

df1 = pd.DataFrame([['2017-18','','','','','','','','','','',''], ['APR-2017', 'MAY-2017', 'JUN-2017', 'JULY-2017', 'AUG-2017', 'SEP-2017', 'OCT-2017', 'NOV-2017', 'DEC-2017', 'JAN-2018', 'FEB-2018', 'MAR-2018']])

抱歉,我是新人,所以不知道如何在此处粘贴数据框,从而使用代码。

最佳答案

cumsum + iloc

df.iloc[1] += '-' + (df.iloc[1].eq('JAN').cumsum() + 2017).astype(str)

df
         0         1         2          3         4         5         6   \
0   2017-18                                                                
1  APR-2017  MAY-2017  JUN-2017  JULY-2017  AUG-2017  SEP-2017  OCT-2017   

         7         8         9         10        11  
0                                                    
1  NOV-2017  DEC-2017  JAN-2018  FEB-2018  MAR-2018  

关于python - 根据前一行 python 数据框中存在的年份格式化月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343650/

相关文章:

python - 如何为时间序列数据创建线性回归模型?

python - 从 BigQuery 获取数据需要很长时间

python - 尝试使用 and 或 or 语句时出现 Pandas 错误

python - 解析数据框中两种不同格式的日期

python - 为什么我再次执行时confusion_matrix不一样?

python - 计算重复行并填充列

python - 类型错误 : cannot handle this type -> object when using pandas rolling(). 应用(lambda:)

r - 将具有混合内容的命名列表转换为数据框

python - 黑体光谱的普朗克公式

python - 如何正确使用 flask request 从 JSON 中检索数据?