【问题标题】:split dictionaries based on keys根据键拆分字典
【发布时间】:2020-04-08 01:43:14
【问题描述】:

我有一本像这样的字典:

dic = {'shop_2':           date  shop_id  item_id    item_price
                 0   2013-05-12     2    20949         5.0             
                 1   2013-05-13     2    20949         5.0             
                 2   2013-05-17     2    20949         5.0             
                 3   2013-05-19     2    20949         5.0             
                 4   2013-05-21     2    20949         5.0             

 [568 rows x 7 columns],

 'shop_3':           date  shop_id  item_id  item_price
           0   2013-04-24     59    20949         5.0              
           1   2013-04-26     59    20949         5.0             
           2   2013-04-27     59    20949         5.0             
           3   2013-04-28     59    20949         5.0             
           4   2013-04-29     59    20949         5.0             

 [760 rows x 7 columns]}

我想要做的是创建一个循环 yn Python,通过其键将字典拆分为新的数据帧。例如,数据框 shop_2 必须具有 key: shop_2 的值来自字典,数据框 shop_3 必须具有 key: shop_3 的值来自字典。如果我尝试访问字典的键,它看起来已经像 df,但我需要一个循环来为字典中的每个键创建新的数据帧。

【问题讨论】:

  • 请把你分享的数据删减到几行。可以很容易地获得可能的解决方案
  • 无法复制数据。试试看:[value.assign(key = key) for key,value in dic.items()]
  • 你能解释一下它是如何工作的吗?输出是字典值的列表。这是,而不是通过使用键访问其中的数据,现在我只需要使用索引,我可以以更简单的方式操作它,但是目标仍然没有达到。
  • 该值是数据帧本身,您可以通过运行[value for key,value in dic.items()] 来获得它,分配只是将密钥挂钩回数据帧。如果没有达到目标,请张贴你想要达到的目标。也用this,因为你的共享数据不能复制

标签: python pandas dataframe dictionary split


【解决方案1】:

看起来这是一个字典,其中键是字符串,值是DataFrame。不清楚你想做什么,所以我会提供一些选择。

如果你想遍历数据帧,你可以使用:

for df in dic.values():
    # do something with the dataframe

如果您只需要数据框列表,您可以使用:

dfs = list(dic.values())

或者如果您想访问单个数据框

shop_2_df = dic.get('shop_2')

【讨论】:

  • 我需要做的是你写的最后一行,但是,我的字典至少有 60 个键,这就是为什么我想做一个循环,从字典中生成每个键的每个 df
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
相关资源
最近更新 更多