如何解决如何使用 Pandas stack/melt
*我正在编辑这个,希望能让它更清晰。我正在尝试利用堆栈和融化的组合将此示例数据帧转换为以下所需的输出。
我使用 Pandas 在下面的 excel 表中加载,最终目标是使其整洁和长。
df=pd.read('myfile.xlsx)
df1= df.stack(level=1)
df2=df1.melt(col_level =1)
示例数据框
良好的客户服务 | 新鲜食材 | 很多座位 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
爸爸约翰 | 细分市场平均 | 爸爸约翰 | 细分市场平均 | 棒约翰 | 细分市场平均 | ||||||
12/1/2019 | 70 | 88 | 12/1/2019 | 2.2 | 5.5 | 12/1/2019 | 5.2 | 8.8 | |||
12/2/2019 | 50 | 78 | 12/2/2019 | 6.8 | 4.4 | 12/2/2019 | 5.3 | 7.8 | |||
12/3/2019 | 60 | 77 | 12/3/2019 | 8.9 | 2.3 | 12/3/2019 | 6.3 | 5.6 | |||
12/4/2019 | 30 | 76 | 12/4/2019 | 7.3 | 7.3 | 12/4/2019 | 7.9 | 4.6 |
这是我正在寻找的最终结果
日期 | 餐厅 | 问题 | 得分 |
---|---|---|---|
12/1/2019 | 约翰爸爸 | 良好的客户服务 | 70 |
12/2/2019 | 约翰爸爸 | 良好的客户服务 | 50 |
12/3/2019 | 约翰爸爸 | 良好的客户服务 | 60 |
12/4/2019 | 约翰爸爸 | 良好的客户服务 | 30 |
12/4/2019 | 约翰爸爸 | 新鲜食材 | 2.2 |
12/4/2019 | 约翰爸爸 | 新鲜食材 | 6.8 |
12/4/2019 | 约翰爸爸 | 新鲜食材 | 8.9 |
12/4/2019 | 约翰爸爸 | 新鲜食材 | 7.3 |
解决方法
假设您的 excel 文件如下所示:
以下是我将如何使用 Pandas 进行处理的步骤:
- 读取文件但跳过前两行并删除空列
- 将 DF 转换为多索引 DF
- 使用
df %>% + group_by(ID,Age) %>% + filter(Month == max(Month)) # A tibble: 6 x 3 # Groups: ID,Age [6] ID Age Month <dbl> <dbl> <dbl> 1 1 25 12 2 2 18 11 3 3 12 10 4 3 25 10 5 4 19 10 6 5 10 3
将 DF 融合并连接起来
for loop
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。