我的.csv文件如下:
Area When Year Month Tickets
City Day 2015 1 14
City Night 2015 1 5
Rural Day 2015 1 18
Rural Night 2015 1 21
Suburbs Day 2015 1 15
Suburbs Night 2015 1 21
City Day 2015 2 13
包含75行。我希望行多索引和列多索引看起来都像这样:
Area City Rural Suburbs
When Day Night Day Night Day Night
Year Month
2015 1 5.0 3.0 22.0 11.0 13.0 2.0
2 22.0 8.0 4.0 16.0 6.0 18.0
3 26.0 25.0 22.0 23.0 22.0 2.0
2016 1 20.0 25.0 39.0 14.0 3.0 10.0
2 4.0 14.0 16.0 26.0 1.0 24.0
3 22.0 17.0 7.0 24.0 12.0 20.0
我已阅读https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html上的.read_csv文档
我可以通过以下方式获取行多索引:
df2 = pd.read_csv('c:\\Data\Tickets.csv', index_col=[2, 3])
我尝试过:
df2 = pd.read_csv('c:\\Data\Tickets.csv', index_col=[2, 3], header=[1, 3, 5])
思考[1、3、5]会获取“城市”,“农村”和“郊区”。如何获得上面显示的所需列多索引?
答案 0 :(得分:1)
好像您需要pivot_table
具有多个索引和多列。
从简单地阅读csv开始
df = pd.read_csv('Tickets.csv')
然后
df.pivot_table(index=['Year', 'Month'], columns=['Area', 'When'], values=['Tickets'])
使用您提供的输入数据,您将得到
Area City Rural Suburbs
When Day Night Day Night Day Night
Year Month
2015 1 14.0 5.0 18.0 21.0 15.0 21.0
2 13.0 NaN NaN NaN NaN NaN