将年度格式的数据转换为财务数据

2024-09-28 22:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧结构:

______________________________________________________
|Year|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC|
|____|___|___|___|___|___|___|___|___|___|___|___|___|
|2016| 5 | 4 | 5 | 6 | 7 | 9 | 9 | 8 | 5 | 3 | 2 | 1 |
|____|___|___|___|___|___|___|___|___|___|___|___|___|
|2017| 3 | 4 | 3 | 5 | 8 | 8 | 7 | 6 | 4 | 3 | 3 | 2 |

我想为2016年4月-2017年4月的财政年度创建一个新行,从第1行的第3列到第11列,并与第2行的第0列到第3列合并

我试过:

df.loc['Apr16-Apr17'] = df.iloc[[[0], [3,4,5,6,7,8,9,10,11]] [[1], [0,1,2,3]]]

但我没法让它发挥作用。我错过了什么

df.loc['Apr16-Apr17'] = df.iloc[[[0], [3,4,5,6,7,8,9,10,11]] <DOES SOMETHING GO HERE?> [[1], [0,1,2,3]]]

Tags: 数据df结构yearlocaprjunmar
1条回答
网友
1楼 · 发布于 2024-09-28 22:18:56

您可以对整个数据帧执行此操作。您只需roll左边的数组:

v = np.roll(df.values.ravel(), -3).astype(float)
v[-3:] = np.nan

df_annual = pd.DataFrame(
    index=df.index, columns=df.columns, data=v.reshape(-1, 12))
print(df_annual)
      JAN  FEB  MAR  APR  MAY  JUN  JUL  AUG  SEP  OCT  NOV  DEC
Year                                                            
2016  6.0  7.0  9.0  9.0  8.0  5.0  3.0  2.0  1.0  3.0  4.0  3.0
2017  5.0  8.0  8.0  7.0  6.0  4.0  3.0  3.0  2.0  NaN  NaN  NaN

相关问题 更多 >