将基于 pandas python 中重复列的数据集分组到列表中
Group into a list a dataset based in a repeated column in pandas python
我有一个从 excel 使用 pandas 导入的数据框,格式如下:
df = pd.read_excel('excel_file.xlsx')
data = pd.DataFrame(df, columns=['A', 'B', 'C', 'D', 'E'])
A B C D E
12 bob 32 abc 123
12 jan 34 fbc 23
14 jan 32 ac 133
12 cat 32 abc 123
我想按 B 列对它们进行分组,这样输出将是:
list[0] = [[12 bob 32 abc 123]]
list[1] = [[12 jan 34 fbc 23][14 jan 32 ac 133]]
list[2] = [[12 cat 32 abc 123]]
我试过使用重复函数但没有成功
非常感谢!!
你可以这样做:
lst = [d.values.tolist() for (k,d) in df.groupby('B', sort=False)]
# check
for i in range(len(lst)): print(lst[i])
输出:
[[12, 'bob', 32, 'abc', 123]]
[[12, 'jan', 34, 'fbc', 23], [14, 'jan', 32, 'ac', 133]]
[[12, 'cat', 32, 'abc', 123]]
我有一个从 excel 使用 pandas 导入的数据框,格式如下:
df = pd.read_excel('excel_file.xlsx')
data = pd.DataFrame(df, columns=['A', 'B', 'C', 'D', 'E'])
A B C D E
12 bob 32 abc 123
12 jan 34 fbc 23
14 jan 32 ac 133
12 cat 32 abc 123
我想按 B 列对它们进行分组,这样输出将是:
list[0] = [[12 bob 32 abc 123]]
list[1] = [[12 jan 34 fbc 23][14 jan 32 ac 133]]
list[2] = [[12 cat 32 abc 123]]
我试过使用重复函数但没有成功
非常感谢!!
你可以这样做:
lst = [d.values.tolist() for (k,d) in df.groupby('B', sort=False)]
# check
for i in range(len(lst)): print(lst[i])
输出:
[[12, 'bob', 32, 'abc', 123]]
[[12, 'jan', 34, 'fbc', 23], [14, 'jan', 32, 'ac', 133]]
[[12, 'cat', 32, 'abc', 123]]