跑出这种错误有两种情况:
第一种情况:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(6).reshape(3,2),columns=['bar','bar'])
df
bar bar
0 0 1
1 2 3
2 4 5
上面构建的DataFrame两列列名一样,这时GroupBy会报错:
df.groupby('bar')
ValueError: Grouper for 'bar' not 1-dimensional
这种情况比较好解决,就是将列名更改成不一样就行。
第二种情况:
df.columns = [['A','B']]
df
A B
0 0 1
1 2 3
2 4 5
这个DataFrame进行GroupBy也会报错:
df.groupby('A')
ValueError: Grouper for 'bar' not 1-dimensional
这个查看df的columns就知道了:
df.columns
MultiIndex(levels=[['A', 'B']],labels=[[0, 1]])
可以看到labels=[[0,1]]是一个二维的,只需要重新索引为一维即可:
df.columns = ['A','B']
df.groupby('A')