【问题标题】:Converting 2 column dataframe of codes and inconsistent descriptions into a nested list of all possible descriptions for each unique code将代码和不一致描述的 2 列数据框转换为每个唯一代码的所有可能描述的嵌套列表
【发布时间】:2021-10-16 22:58:59
【问题描述】:

对于这篇文章标题的措辞不佳表示歉意,我不确定如何最好地简化对我正在尝试做的事情的解释。

我有一个数据框输出,其中标记了行间描述列不一致的记帐代码。例如:

   Accounting Codes Account Description
10              D_B                   2
10              D_B                 two
11              D_C                   3
11              D_C               three
12              D_D                   4
12              D_D                four
13              D_D                FOUR  

我正在尝试使用此数据框将每个唯一代码映射到 tkinter 标签,而与该代码匹配的每个描述都映射到组合框下拉列表。例如,我有一个标记为“D_D”的标签,并在下一列中有一个组合框,其中包含“4”、“四”和“四”的下拉选项,其他 2 个帐户代码也是如此。

我遇到的主要问题是将上述数据框转换为如下所示的列表格式,其中帐户代码是第一项,然后是重复的描述,然后可以轻松循环生成 tkinter元素:

duplicates = [
        
['D_B', '2', 'two'],
['D_C', '3', 'three'],
['D_D', '4', 'four', 'FOUR']

    ]

我真的完全不知道如何开始转换它,我尝试查看聚合和 groupby,但无法弄清楚如何实现上述输出。

【问题讨论】:

    标签: python pandas dataframe tkinter


    【解决方案1】:

    使用groupby_apply:

    duplicates = df.groupby('Accounting Codes')['Account Description'] \
                   .apply(lambda x: [x.name, *x]).tolist()
    print(duplicates)
    
    # Output:
    [['D_B', '2', 'two'], ['D_C', '3', 'three'], ['D_D', '4', 'four', 'FOUR']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多