我一直在努力解决完全相同的问题,答案是可以使用 grouby 来获取列表。我不是 100% 确定我是以最 Pythonic 的方式来做这件事的,但在这里我试图解决你的问题是值得的。您可以创建包含在按组中的数据列表,如下所示:
import pandas as pd
import numpy as np
from itertools import chain
Data = {'A' : [1, 1, 1, 1, 2, 2, 3], 'B' : [10, 12, 11, 10, 11, 12, 14], 'C' : [22, 20, 8, 10, 13, 10, 0]}
DF = pd.DataFrame(Data)
DFGrouped = DF.groupby('A')
OutputLists = []
for group in DFGrouped:
AList = list(group[1].A)
BList = list(group[1].B)
CList = list(group[1].C)
print list(group[1].A)
print list(group[1].B)
print list(group[1].C)
ZIP = zip(BList, CList)
print ZIP
OutputLists.append(list(chain(*ZIP)))
OutputLists
这会以我认为您想要的方式将您的数据输出到列表列表中。然后,您可以将其设为数据框。上述印刷声明仅用于清楚说明。使用我的方法执行此操作的最有效(就代码而言)方法如下:
import pandas as pd
import numpy as np
from itertools import chain
Data = {'A' : [1, 1, 1, 1, 2, 2, 3], 'B' : [10, 12, 11, 10, 11, 12, 14], 'C' : [22, 20, 8, 10, 13, 10, 0]}
DF = pd.DataFrame(Data)
DFGrouped = DF.groupby('A')
OutputLists = []
for group in DFGrouped:
ZIPPED = zip(group[1].B, group[1].C)
OutputLists.append(list(chain(*ZIPPED)))
OutputLists
据我所知,从分组数据中获取列表的关键是认识到数据本身存储在分组数据中每个组的 group[1] 中。
希望这可以帮助!