gpt4 book ai didi

python - 如何将关联的相邻 Pandas 数据框数据导出到字典中?

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:13 25 4
gpt4 key购买 nike

<分区>

我想将以下样式的数据框放入字典中。

输入:

>>>import pandas as pd

>>>df = pd.read_csv('file.csv')
>>>print(df)

Market Rep Name Date Amount
0 A1 B1 C1 D1 1
1 A1 B1 C1 D1 2
2 A1 B1 C1 D2 3
3 A1 B1 C1 D2 4
4 A1 B1 C2 D1 5
5 A1 B1 C2 D1 6
6 A1 B1 C2 D2 7
7 A1 B1 C2 D2 8
8 A1 B2 C3 D1 9
9 A1 B2 C3 D1 10
10 A1 B2 C3 D2 11
11 A1 B2 C3 D2 12
12 A2 B3 C4 D1 13
13 A2 B3 C4 D1 14

期望的输出:


>>> print(associated_data)
{'A1': {'B1': {'C1': {'D1':[1 + 2],
{'D2':[3 + 4]},
'C2': {'D1':[5 + 6],
'D2':[7 + 8]}}
{'B2': {'C3': {'D1':[9 + 10],
'D2':[11 + 12]}}},
'A2': {'B3': {'C4': {'D1':[13 + 14]}}}}

这可能不是组织和排序数据的最佳方式,所以我愿意提出建议。

我已经尝试了一种我希望通过像这样的大量 for 循环来工作的方法:

# Main function
for market in df['Market'].unique():
market_data = self.df.loc[self.df['Market'] == market]
associated_reps = market_data['Rep'].unique()

# Repeat
for rep in associated_reps:
rep_data = market_data.loc[market_data['Rep'] == rep]
associated_names = rep_data['Name'].unique()

# Repeat
for name in associated_names:
name_data = rep_data.loc[rep_data['Name'] == name]
associated_dates = name_data['Date'].unique()

# Repeat
for date in associated_dates:
date_data = name_data.loc[name_data['Date'] == date]
associated_amount = sum(date_data['Amount'].tolist())

# Attempted solution code (total fail)
breakdown[market][rep][name][date] = associated_amount

这确实适本地分离了所有数据,并在最后尝试将它们放在一起。我希望你能像这样制作一个 super 嵌套的字典,但它完全失败了(不幸的是,事实证明这不是字典的工作方式 lmao)。

您如何才能产生所需的输出以产生相同的结果(也许还使用更短的排序代码)?

谢谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com