【问题标题】:Is there a way to separate a dict into separate data frames with unique names?有没有办法将字典分成具有唯一名称的单独数据框?
【发布时间】:2022-11-16 23:29:54
【问题描述】:

我是 python 的新手,所以如果这是一个愚蠢的问题,请原谅我。

我正在尝试根据唯一的行值(站点 ID)将较大的数据集分成较小的数据框。我已经完成了以下操作,它制作了一个 dict 并将它们分成较小的数据框,但在这个 dict 中?

dfs = dict(list(df.groupby('Station')))

当我在 Jupyter 中打开它时,它只在数字系列 (0-20) 旁边显示站 ID。

有没有办法将这些较小的数据帧命名为站 ID?我习惯了 R/tidyverse,所以必须有一种方法可以轻松做到这一点吗?

谢谢! 小号

也尝试了以下操作:

dct = {}
for idx, v in enumerate(df['Station'].unique()):
    dct[f'df{idx}'] = df.loc[df['Station'] == v]

print(dct)

但只是将它们命名为 df1、df2、df3 等。

【问题讨论】:

  • 你能提供一个可重现的小例子吗?
  • 你需要dict做什么?您可以直接使用 for name, group in df.groupby('Station'): # logic 迭代 groupby - 参见例如this answer 如果你只想要名字。

标签: python pandas database organization


【解决方案1】:

如果你需要dict 具体来说,你可以使用

dfs = {name: group for name, group in df.groupby('Station')}

但这会创建数据副本;尝试直接迭代组(和名称)

for name, group in df.groupby('Station'):
    # logic

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多