Pandas Dataframe 根据列值将值展平到单元格
Posted
技术标签:
【中文标题】Pandas Dataframe 根据列值将值展平到单元格【英文标题】:Pandas Dataframe Flatten values to cell based on column value 【发布时间】:2021-12-03 18:56:16 【问题描述】:我有一个从 Excel 读取的简单数据框。为了进一步处理,我需要将“存储”值组合到一个与给定区域对应的单元格中的列表中。为了澄清,我希望每个区域只有一行。在相应的“商店”列中将列出一个单元格中的所有相应商店。
当前状态
期望的状态
我尝试实现了melt,但没有成功。
store_df = pd.read_excel("Zones_by_Store.xlsx")
store_df.groupby(store_df['Price Zone Name'])
pd.melt(store_df, id_vars=['Price Zone Name'], value_vars=['Store No'])
store_df.to_csv('Stores.csv')
【问题讨论】:
显示的区域之后有多个区域,为简洁起见,图片被截断。 【参考方案1】:试试这个:
import pandas as pd
price_zone = ['CA2', 'CA2', 'CA2']
store_num = [112, 162, 726]
df = pd.DataFrame(price_zone, columns=['Price Zone'])
df['Store No'] = store_num
df = (df.groupby(['Price Zone']).agg('Store No': lambda x: x.tolist()).reset_index())
print(df)
【讨论】:
如果有帮助,请接受并投票赞成这个答案以上是关于Pandas Dataframe 根据列值将值展平到单元格的主要内容,如果未能解决你的问题,请参考以下文章
根据列值删除Python Pandas中的DataFrame行[重复]