【发布时间】:2021-08-26 05:15:33
【问题描述】:
我的问题的快速总结: ghGby 是一个键的字典,每个键对应于一个数据帧 groupby。我想将每个 groupby 分成他们自己的 groupby,对应于 groupby 列中的每组天。
groupDays = {}
groupDayIndexer = []
for x in ghGby.keys():
for y in ghGby[x].DAY.unique().keys():
if x in groupDays:
groupDays[x].append(ghGby[x].get_group(y))
else:
groupDays[x] = ghGby[x].get_group(y)
数据如下所示:
ghGby[keyA]:
day|transaction|etc.
51 | ......... | ...
51 | ......... | ...
63 | ......... | ...
63 | ......... | ...
63 | ......... | ...
94 | ......... | ...
.get_group(y) 将每组天作为一个单独的对象返回就好了,但是当我将它们附加到 groupDays 时,我只能得到 groupby 的一天,而不是像这样的每一天:
print(groupDays['keyA'])
{keyA: [day51GroupBy, day63GroupBy, day94GroupBy]}
更多背景信息:
原始数据集看起来像这样,只有数千个家庭密钥。我的目标是能够通过指定我想要的日期和想要的家庭钥匙来访问这个大型数据集的一个子集。由于这些是交易,同一密钥可以在同一天有多个条目。
household_key DAY PRODUCT_ID
1929 4 1004906
1929 4 1004906
1929 95 1004906
1929 202 1004906
1929 207 1004906
我想要的输出:
print(groupDays['household_key1929'])
{[ghGby[groupDays['household_key1929'].get_group(day4), ghGby[groupDays['household_key1929'].get_group(day52), ghGby[groupDays['household_key1929'].get_group(day95), ghGby[groupDays['household_key1929'].get_group(day202)]}
我想这样做以便我可以更轻松地访问我的数据,如下所示:
display(groupDays['household_key1929'][0])
household_key DAY PRODUCT_ID
1929 4 1004906
1929 4 1004906
我正在访问与家庭钥匙 1929 关联的日期列表的第一个元素,在本例中为第 4 天。
【问题讨论】:
-
拜托,你能给我们看看原始数据集吗?以及所需的输出。谢谢!
-
@SamirHinojosa 你好 Samir- 刚刚更新了一些更多信息,希望它能让事情更清楚
-
能否向我们展示所需的输出作为数据集?谢谢!
-
@SamirHinojosa 没问题,刚刚添加。
-
我不知道dict的值中的数据是什么......但我想你需要使用
explode(),你可以看到related answer,然后制作groupby()根据您的需要
标签: python pandas dictionary for-loop pandas-groupby