熊猫单线
pandas 单线怎么样。
导入和数据:
>>> import pandas as pd
>>> a = [[1,2,3,4,5],[1,2,5,6,7],[1,2,5,2,1],[1,3,4,5,7],[3,4,1,2,3],[3,4,1,1,1]]
熊猫在行动:
>>> pd.DataFrame(a).groupby([0, 1]).sum().reset_index().values.tolist()
[[1, 2, 13, 12, 13], [1, 3, 4, 5, 7], [3, 4, 2, 3, 4]]
一步一步
制作数据框:
>>> df = pd.DataFrame(a)
0 1 2 3 4
0 1 2 3 4 5
1 1 2 5 6 7
2 1 2 5 2 1
3 1 3 4 5 7
4 3 4 1 2 3
5 3 4 1 1 1
按前两列分组并对其他列求和:
>>> df2 = df.groupby([0, 1]).sum()
>>> df2
2 3 4
0 1
1 2 13 12 13
3 4 5 7
3 4 2 3 4
groupby 方法按列0 和1 分组。结果是一个GroupBy 对象。你需要用它“做”一些事情来可视化它。在这里,我们对组中的值求和。或许看看格式精美的表格会更清楚一些:
这个索引是MultiIndex:
MultiIndex(levels=[[1, 3], [2, 3, 4]],
labels=[[0, 0, 1], [0, 1, 2]],
names=[0, 1])
有两个级别,名称为0 和1。最左边的列是带有标签1 和3 的第一层,接下来是带有标签2、3 和4 的第二层。第一级中的标签1 用于前两行。所有其他标签仅用于一行。
扁平化多索引:
>> df3 = df2.reset_index()
0 1 2 3 4
0 1 2 13 12 13
1 1 3 4 5 7
2 3 4 2 3 4
转换成列表:
>>> df3.values.tolist()
[[1, 2, 13, 12, 13], [1, 3, 4, 5, 7], [3, 4, 2, 3, 4]]