python - 比较 Pandas 中的相对开始日期

标签 python pandas time-series

我想使用 Pandas 数据透视表的输出创建一个相对开始日期表。数据透视表的列是月份,行是帐户,单元格是操作的运行总计。例如:

Date1     Date2     Date3     Date4
1         1             2         3
N/A       1             2         2

第一行的第一个实例是 Date1。 第二行的第一个实例是 Date2。

新表格的格式如下:现在各列是相对于第一个操作的月份,如下所示:

FirstMonth     SecondMonth     ThirdMonth
1                 1             2
1                 2             2

在 pandas 中创建初始数据透视表非常简单,我很好奇是否有任何关于如何开发相对起点表的建议。谢谢!

最佳答案

首先,确保您的数据框列是实际的日期时间值。然后,您可以运行以下命令来计算每个日期的操作总和,然后按月对这些值进行分组并计算相应的每月总和:

>>>df

2019-01-01  2019-01-02  2019-02-01
Row
0             4          22          40
1            22          67          86
2            72          27          25
3             0          26          60
4            44          62          32
5            73          86          81
6            81          17          58
7            88          29          21
>>>df.sum().groupby(df.sum().index.month).sum()

1    720
2    403

如果您希望它反射(reflect)您上面的内容:

>>> out = df.sum().groupby(df.sum().index.month).sum().to_frame().T
>>> out.columns = [datetime.datetime.strftime(datetime.datetime.strptime(str(x),'%m'),'%B') for x in out.columns]
>>> out
   January  February
0      720      403

如果我误解了你,而你希望按记录/行进行分割:

>>> df.T.groupby(df.T.index.month).sum().T
1   2
Row
0     26  40
1     89  86
2     99  25
3     26  60
4    106  32
5    159  81
6     98  58
7    117  21

将列重命名为上面的内容。

关于python - 比较 Pandas 中的相对开始日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612693/

相关文章:

python - Pandas:将季度数据转换为月度数据

python - 用于附加和创建 pandas 数据帧的快速 numpy 数组结构

python - 计算两个表中等效行的交集

python - 如何按月汇总和汇总项目?

r - 过滤季节性时间序列异常值

python - 如何根据不同日期的某些列转移 pandas 数据框中的值

python - 将 defaultdicts 的 iterable 连接到 DataFrame

python - Python 字典的惰性求值

python - numpy 矩阵的映射索引

Python,numpy 数组代码不适用于 NaN 元素