我有以下 Dataframe :
df = pd.DataFrame({'lines': [[0], [98], [64, 1], [64, 65], [64, 69]],
'stations': [[0, 1], [0, 1], [0, 3, 1], [0, 3, 1], [0, 3, 1]]})`
print(df)
lines stations
0 [0] [0, 1]
1 [98] [0, 1]
2 [64, 1] [0, 3, 1]
3 [64, 65] [0, 3, 1]
4 [64, 69] [0, 3, 1]
我想创建两(2)个列表;lines_list
和stations_list
,它们具有以下格式:
lines_list= [[[0, 98]], [[64], [1,65,69]]]
stations_list= [[0,1], [0,3,1]]
我尝试过这个解决方案:
df['stations'] = df['stations'].apply(tuple)
grouped = df.groupby('stations')['lines'].apply(list)
#for lines_list
lines_list = [group for group in grouped]
#for stations_list
stations_list = grouped.index.tolist()
stations_list = [list(item) for item in stations_list]
对于stations_list
,它工作,因为我得到了预期的输出。但是,我没有得到我需要的lines_list
输出。相反,我得到了[[[0], [98]], [[64, 1], [64, 65], [64, 69]]]
。关于如何修复这个问题有什么建议吗?
1条答案
按热度按时间yjghlzjz1#
您需要对分组对象应用自定义函数。该函数会将每个组中的列表合并为一个列表