【发布时间】:2022-12-05 18:50:50
【问题描述】:
我正在使用数据框:
day account_id balance
2022-11-01 ncw8y7 1.000000
2022-11-02 ncw8y7 1.000424
我想将其转换为嵌套字典,其中第一级是 account_id,第二级是类别名称“余额”,第三级是最终包含日期作为列表和余额的日期:
{"account_id":"ncw8y7","balances":{"2022-11-01":{"day":[2022,11,01],"balance":1.00000},"2022-11-02":{"day":[2022,11,2],"balance":1.000424}}}
我尝试采用this 和post 中的解决方案。但是,出于某种原因,在使用第一个解决方案尝试学习如何进行此转换的第一部分时(不包含日期的部分):
dict = results.groupby('account_id')[['day','balance']].apply(lambda x: x.set_index('day').to_dict(orient='index')).to_dict()
我正进入(状态
{'ncw8y7': {datetime.date(2022, 11, 1): {'balance': 1.00000},
datetime.date(2022, 11, 2): {'balance': 1.000424}}}
我不明白为什么 'day' 变量以这种方式格式化:datetime.date(2022, 11, 1)。那是因为把它作为索引吗?你会建议我如何采用dict功能来达到预期的效果?
【问题讨论】:
-
请提供一种正确的方法来重新创建您的初始数据框,例如
df.to_dict() -
data = {'day': ['2022-11-01', '2022-11-02'], 'account_id': ['ncw8y7', 'ncw8y7'], 'balance': [1.000000, 1.000424] } df = pd.DataFrame(数据)
-
请编辑您的问题。还有多个帐户 ID,您最终会得到一个字典列表。这是你想要的吗?
标签: python dataframe dictionary