想看着两个列作为分组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 agroupby 之后选取数据做新的dataframe,通过head来获取分组中的数据
new_df = df.groupby(['ship',"x","y"]).head(1)有可能你对选取的数据有一些要求,比如获取分组中某列最小的数据? 可以先对这列排序,
# 按时间排序的 testData.sort_values("time",inplace=True)