需求
想看着兩個列作為分組key的情況下得到一個詞典,這樣可以友善來轉換資料。
代碼
代碼 可以來看下
df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],
'C': [1, 2, 3]})
print(df)
key = ['A','B']
#group = df.groupBy(key)
groupDic = dict(list(df.groupby(key)))
for key in groupDic:
print(key[0],key[1])
print('key={}'.format(key))
print('{}'.format(groupDic[key]['A']))
print('-'*40)
## 多列可以通過 key[i] ,i 來作為坐标來擷取資料
for key in groupDic:
print(key[0],key[1])
結果:
A B C
0 a b 1
1 b a 2
2 a c 3
a b
key=('a', 'b')
0 a
Name: A, dtype: object
----------------------------------------
a c
key=('a', 'c')
2 a
Name: A, dtype: object
----------------------------------------
b a
key=('b', 'a')
1 b
Name: A, dtype: object
----------------------------------------
a b
a c
b a
groupby 選取幾個資料
groupby 之後選取資料做新的dataframe,通過head來擷取分組中的資料
new_df = df.groupby(['ship',"x","y"]).head(1)
有可能你對選取的資料有一些要求,比如擷取分組中某列最小的資料? 可以先對這列排序,
# 按時間排序的
testData.sort_values("time",inplace=True)