Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
185 views
in Technique[技术] by (71.8m points)

python - Loop Through Pandas Dataframe and split into multiple dataframes based on unique column values

I have a dataframe saved in a list. Is there a way to loop through the list to create separate dataframes based of a column value?

ex: Turn this

df

ID Colour Transport
0902 red car
0902 blue car
0105 red car
0105 yellow car
0105 orange boat
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this:

df1 = df.loc[df['ID'] == 0902]
df2 = df.loc[df['ID'] == 0105]

Or this:

df1, df2 = [group for _, group in df.groupby('ID')]

Or if you want it dynamically:

dct = {f'df{idx}': group for _, group in df.groupby('ID')]}
print(dct)

Or:

dct = {}
for idx, v in enumerate(df['ID'].unique()):
    dct[f'df{idx}'] = df.loc[df['ID'] == v]

print(dct)

And print like this for specific dataframe:

print(dct['df1'])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...