3 回答
TA贡献1777条经验 获得超3个赞
您可以stack()然后执行以下操作groupby():
df.set_index('Date').stack().reset_index(0,name='AB').groupby('Date')['AB'].apply(set)
#Alternate sol with itertools
#df.groupby('Date').apply(lambda x: set(itertools.chain.from_iterable(x[['A','B']].values)))
Date
2019-05-02 {12, 13, 23}
2019-05-03 {12, 13}
Name: AB, dtype: object
TA贡献2051条经验 获得超10个赞
试试下面的代码,希望这会有所帮助:
dic = {}
for date in set(test_df['Date']):
dic[date] = set(A_df.get_group(date)['A']).union(set(A_df.get_group(date)['B']))
输出将是:
{'2019-05-02': {12, 13, 23}, '2019-05-03': {12, 13}}
TA贡献1805条经验 获得超10个赞
矩阵有几种方法flatten,例如stack,melt或者只是flatten使用 numpy 数组。
df.set_index('Date').groupby('Date').apply(lambda x:set(x.values.flatten()))
df.set_index('Date').groupby('Date').apply(lambda x:set(x.stack()))
添加回答
举报