Pandas DataFrame按Price Zone分组将Store值合并为单单元格列表实现咨询
你之前的代码存在两个问题:一是调用groupby后没有执行对应的聚合操作,没有存储分组后的结果;二是melt方法用于宽表转长表,和你需要的分组聚合场景完全不匹配。
正确实现代码如下:
import pandas as pd # 读取原始Excel数据 store_df = pd.read_excel("Zones_by_Store.xlsx") # 按价格区域分组,将对应门店编号聚合为列表 # 如果需要保留Price Zone Id等其他和区域一一对应的字段,可加入分组参数,例:groupby(['Price Zone Id', 'Price Zone Name']) result_df = store_df.groupby('Price Zone Name', as_index=False)['Store No'].agg(list) # 导出结果,index=False避免导出多余的索引列 result_df.to_csv('Stores.csv', index=False)
如果需要将列表转为用分隔符(比如逗号)拼接的字符串而非Python列表存储,可以把聚合逻辑改成.agg(lambda x: ','.join(x.astype(str))),更适合CSV存储后读取使用。
内容的提问来源于stack exchange,提问作者Ty Swenson
相关产品推荐
相关产品推荐

