【问题标题】:Acess a dataframe in dictionaries访问字典中的数据框
【发布时间】:2022-01-16 20:22:34
【问题描述】:

早上,

我有一个包含 1 个键和 2 个值对的字典,这些值是数据帧

dictionary = {'key_1' : [df_1, df_2],
             'key_2' : [df_3, df_4], ....}

我想创建一个新的数据框(使用键命名),合并每个键的两个值

new_df_key = pd.merge(left = df_1,
                      right = df_2,
                      how = 'left',
                      on = 'column_name')

我无法检索数据框的名称以进行合并。目标是遍历字典中的键和值并创建新的数据框。有什么想法吗?

谢谢!

【问题讨论】:

  • 嘿,您能在此处添加您的样本数据集和预期的输出样本吗?放一个2行的样本就够了。

标签: python pandas loops dictionary merge


【解决方案1】:

不确定我是否正确理解了这个问题,但我认为您可能想做这样的事情。

merged_df_list = []
for key in dictionary.keys():
    df1, df2 = dictionary[key][0], dictionary[key][1]
    key = pd.merge(left = df1, right = df2, how = "left", on = "column_name")
    merged_df_list.append(key)

这应该会给你一个由字典中的键命名的合并数据帧列表

编辑:

使用字典创建,因此可以通过键名访问merged_dfs:

merged_df_dict = {}
for key in dictionary.keys():
    df1, df2 = dictionary[key][0], dictionary[key][1]
    merged_df = pd.merge(left = df1, right = df2, how = "left", on = "column_name")
    merged_df_dict[key] = merged_df

这应该允许您通过以下键名访问新的 df:

merged_df_dict[keyname] # Returns the new df merged by that key

【讨论】:

  • 完美的山姆! merge_df_list 有一堆数据框。他们不是保存在带有键名的变量中吗?我可以在不使用的情况下访问它们:```merged_df_list[0] ``` 例如
  • 刚刚编辑为使用字典,因为这样更有意义。
  • 传奇!非常感谢山姆,你刚刚解决了我长期以来的疑问!谢谢
  • Sam,你介意我再详细说明一下吗?
  • 一点也不,去吧!
猜你喜欢
  • 2020-08-28
  • 2022-06-10
  • 2017-10-25
  • 2021-12-22
  • 2018-09-21
  • 2021-11-20
  • 1970-01-01
  • 2013-10-06
  • 2020-09-15
相关资源
最近更新 更多