如何将含会计代码与描述的两列DataFrame转换为按唯一代码分组的嵌套列表
解决方案
直接用groupby遍历分组结果拼接即可,完整可运行代码如下:
import pandas as pd # ------------ 构造示例数据(你自己用的时候可以删掉这段,换成你自己的df)------------ data = { "Accounting Codes": ["D_B", "D_B", "D_C", "D_C", "D_D", "D_D", "D_D"], "Account Description": ["2", "two", "3", "three", "4", "four", "FOUR"] } df = pd.DataFrame(data) # --------------------------------------------------------------------------------- # 按会计代码分组,提取对应描述列 grouped = df.groupby("Accounting Codes")["Account Description"] duplicates = [] for code, desc_series in grouped: # 若需要对描述去重,将desc_series.tolist()替换为desc_series.unique().tolist()即可 duplicates.append([code] + desc_series.tolist())
运行后得到的duplicates变量就是你需要的格式:
[['D_B', '2', 'two'], ['D_C', '3', 'three'], ['D_D', '4', 'four', 'FOUR']]
后续tkinter使用参考
遍历duplicates即可批量生成组件:
for item in duplicates: accounting_code = item[0] desc_options = item[1:] # 生成label时把accounting_code作为显示文本 # 生成combobox时把desc_options作为下拉选项的values参数即可
内容的提问来源于stack exchange,提问作者WRL41225
相关产品推荐
相关产品推荐

