【发布时间】:2015-02-09 18:49:09
【问题描述】:
excel表格中的数据存储方式如下:
Area | Product1 | Product2 | Product3
| sales|sales.Value| sales |sales.Value | sales |sales.Value
Location1 | 20 | 20000 | 25 | 10000 | 200 | 100
Location2 | 30 | 30000 | 3 | 12300 | 213 | 10
产品名称是给定月份的 1000 个左右区域中的每一个区域的 2 行“销售额”和“销售额”两行单元格的合并。同样,过去 5 年的每个月都有单独的文件。此外,新产品已在不同月份添加和删除。因此,不同的月份文件可能如下所示:
Area | Product1 | Product4 | Product3
论坛能否建议使用 pandas 读取这些数据的最佳方法? 我不能使用索引,因为每个月的产品列都不一样
理想情况下,我想将上面的初始格式转换为:
Area | Product1.sales|Product1.sales.Value| Product2.sales |Product2.sales.Value |
Location1 | 20 | 20000 | 25 | 10000 |
Location2 | 30 | 30000 | 3 | 12300 |
import pandas as pd
xl_file = read_excel("file path", skiprow=2, sheetname=0)
/* since the first two rows are always blank */
0 1 2 3 4
0 NaN NaN NaN Auto loan NaN
1 Branch Code Branch Name Region No of accounts Portfolio Outstanding
2 3000 Name1 Central 0 0
3 3001 Name2 Central 0 0
我想将其转换为Auto loan.No of account、Auto loan.Portfolio Outstanding 作为标题。
【问题讨论】:
-
您能否发布一个示例,说明使用
df = pd.read_excel(...)加载文件时DataFrame 的外观?df.index和df.columns是什么? -
谢谢,我想通了。 5x12=60 文件中只有 4 个元列组合。所以我只是为所有 4 种组合使用字典。
-
@unutbu:我的编辑是否清楚地表达了我的要求?感谢您的帮助,因为我的解决方案并不优雅。
-
编辑解释了所需的结果(好),但仍然不清楚(至少对我而言)原始 DataFrame 的样子。原始 DataFrame 是否具有 MultiIndex 列?请发布您的代码,即使它不优雅。它可以帮助我们了解您的 DataFrame 的外观。
-
@unutbu 我在 EDIT2 中添加了数据框 head() 视图。如您所见,我想将其转换为“Auto loan.No of accounts”或类似的可唯一查询的内容。
标签: python excel pandas read-data