Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas将年度格式的数据转换为财务数据_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用pandas将年度格式的数据转换为财务数据

Python 使用pandas将年度格式的数据转换为财务数据,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个如下结构的数据帧: ______________________________________________________ |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 | |____|___|___|__

我有一个如下结构的数据帧:

______________________________________________________
|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]]]
df.loc['Apr16-Apr17']=df.iloc[[0],[3,4,5,6,7,8,9,10,11][[1],[0,1,2,3]]

您可以对整个数据帧执行此操作。您只需
向左滚动
阵列即可:

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

谢谢@coldspeed这应该很有魅力!还有,我怎么能有第二个四月呢?i、 e 13列(4月至4月(含))?然后我就可以放下另一排了。干杯,斯克罗马克。@斯克罗马克嗯,如果你有多年的时间来做这件事,这个解决方案将如何推广?你会为所有这些设置4月份(因此每行总共13列)吗?我明白你的意思,我只在2016-17财政年度需要它,但这似乎是一种不好的做法@冷速