【发布时间】:2021-03-12 12:40:29
【问题描述】:
问题
我正在处理一个现有的具有值的 excel 表,它需要以一种方式进行转换,即我希望收集的不同值分布在不同的列中,并针对我需要列出(并最终附加)其中一个的唯一值列的值。
输入
sr_no, branch_code, Tier1, Tier2, Tier3, Rural
1, 12, Mumbai, Thane, 0, 0
2, 33, Navi Mumbai, Pimpri, Lonavala, 0
3, 120, Pune, Pimpri, 0, 0
4, 8, Surat, Saputara, 0, Silvassa
5, 15, Pune, Nashik, Saputara, 0
6, 49, Banglore, Mumbai, 0, Saputara
我希望从中扫描唯一值的列如下:["Tier1", "Tier2", "Tier3", "Rural"] --- (A)
获取唯一值不是问题,
["Mumbai", "Thane", "Navi" "Pimpri", "Surat", "Pune", "Saputara", "Silvassa", "Nashik", "Banglore"]
在每条记录上扫描/匹配唯一值以收集 branch_code 是一项挑战。
试炼
我尝试将 (A) 中所需列的组合值合并到一个列表中。
BranchMaster = pd.read_excel("BranchMaster.xlsx")
scan_cols = ["Tier1", "Tier2", "Tier3", "Rural"]
BranchMaster["Combined"] = BranchMaster.loc[:, scan_cols].values.tolist()
现在,我可以逐条迭代并收集分支代码,但我相信必须有一种更优化的方法来做到这一点。
所需的输出
这个输出我只需要 Dataframe 格式,所以我是否可以将值存储在 CSV、TSV 等中都没关系。
city, branch_code
Mumbai, [12, 49]
Thane, [12]
Navi Mumbai, [33]
Pimpri, [33, 120]
Surat, [8]
Pune, [120, 15]
Saputara, [8, 15, 49]
Silvassa, [8]
Nashik, [15]
Banglore, [49]
【问题讨论】:
标签: python pandas dataframe csv aggregate