简体   繁体   中英

How to perform group by in python?

I need to read data from an excel file and perform group by on the data after that.
the structure of the data is like following:

n c
1 2
1 3
1 4
2 3
2 4
2 5
3 1
3 2
3 3 

I need to read these data and then generate a list of dictionaries based on the c value. desired output would be a list of dictionaries with c as keys and values of n as values like this:

[{1:[3]}, {2:[1,3]}, {3:[1,2,3]}, {4:[1,2]}, {5:[2]}]

I use this function to read data and it works fine:

data = pandas.read_excel("pathtofile/filename.xlsx", header=None)

You can try this way:

d1 = df.groupby('c')['n'].agg(list).to_dict()
res = [{k:v} for k,v in d1.items()]
print(res)

Output:

[{1: [3]}, {2: [1, 3]}, {3: [1, 2, 3]}, {4: [1, 2]}, {5: [2]}]

Sample output dict

d=df.groupby('c').n.agg(list).to_dict()
{1: [3], 2: [1, 3], 3: [1, 2, 3], 4: [1, 2], 5: [2]}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM