考慮轉型您的數據
除非您的real數據要求您重置爲MultiIndex
,否則在執行groupby()
之前似乎沒有必要重新索引。
如果groupby
C1
只有你得到你想要的輸出示例:
import pandas as pd
values = {'C1': ['B', 'A'],
'C2': ['B', 'A'],
'C3': ['B', 'A'],
}
df = pd.DataFrame(values)
print 'Original DataFrame'
print df
print
df2 = df.set_index(keys=['C1', 'C2'], inplace=False)
print 'Reindexed DataFrame'
print df2
print
grouped = df.groupby(['C1'], sort=False)
grouped2 = df2.groupby(level='C1', sort=False)
print 'Original Groups'
print grouped.groups
print
print 'Reindexed Groups'
print grouped2.groups
print
print 'Original Group for loop output'
for name, group in grouped:
print(name)
print
print 'Reindexed Group for loop output'
for name, group in grouped2:
print(name)
Original DataFrame
C1 C2 C3
0 B B B
1 A A A
Reindexed DataFrame
C3
C1 C2
B B B
A A A
Original Groups
{'A': [1], 'B': [0]}
Reindexed Groups
{'A': [('A', 'A')], 'B': [('B', 'B')]}
Original Group for loop output
B
A
Reindexed Group for loop output
A
B
我不知道中不需要的排序這份報告是否涉及:https://github.com/pydata /熊貓/問題/ 4588 – tfv