【发布时间】:2019-03-22 22:01:12
【问题描述】:
这是我的数据框:
df = pd.DataFrame.from_records(data=data, coerce_float=False, index=['date'])
# date field a datetime.datetime values
account_id amount
date
2018-01-01 1 100.0
2018-01-01 1 50.0
2018-06-01 1 200.0
2018-07-01 2 100.0
2018-10-01 2 200.0
问题描述
如何用前导和尾随“空日期”“填充”我的数据框。我试图在 date_range 和 period_range 上重新索引,我试图合并另一个索引。我一整天都在尝试各种事情,并且阅读了很多文档。
我有一个简单的数据框,其中包含 transaction_date、transaction_amount 和 transaction_account 列。我想对这个数据框进行分组,以便在第一级按帐户分组,然后按年分组,然后按月分组。然后我想要每个月的一列,其中包含该月交易金额值的sum。
这似乎应该是很容易做到的事情。
预期输出
这是我得到的最接近的:
df = pd.DataFrame.from_records(data=data, coerce_float=False, index=['date'])
df = df.groupby(['account_id', df.index.year, df.index.month])
df = df.resample('M').sum().fillna(0)
print(df)
account_id amount
account_id date date date
1 2018 1 2018-01-31 2 150.0
6 2018-06-30 1 200.0
2 2018 7 2018-07-31 2 100.0
10 2018-10-31 2 200.0
这就是我想要实现的(基本上通过date_range(start='2018-01-01', period=12, freq='M')重新索引数据
(理想情况下,我希望月份按年份在顶部作为列转置)
amount
account_id Year Month
1 2018 1 150.0
2 NaN
3 NaN
4 NaN
5 NaN
6 200.0
....
12 200.0
2 2018 1 NaN
....
7 100.0
....
10 200.0
....
12 NaN
【问题讨论】: