![](/img/trans.png)
[英]How to split dataframe with multiple types of information into separate dataframes based on string?
[英]How to iterate through dataframe rows, split data to separate dataframes based on column?
我查看了 iterrows、列表理解、字典理解、应用和 itertuples。 我无法让其中任何一个执行以下场景。 任何帮助将不胜感激!
例如原始 dataframe:
ID |State |Invoice|Price|Email
1000|Texas |1 |2 |texas@test.com
1000|Texas |2 |5 |texas@test.com
1001|Alabama|3 |4 |alabama@test.com
1000|Texas |4 |8 |texas@test.com
1002|Georgia|5 |3 |georgia@test.com
1001|Alabama|6 |6 |alabama@test.com
预期结果遍历原始 dataframe,按 ID 拉取以将所有数据包含到单独的数据帧中。
DF1:
ID |State |Invoice|Price|Email
1000|Texas |1 |2 |texas@test.com
1000|Texas |2 |5 |texas@test.com
1000|Texas |4 |8 |texas@test.com
DF2:
ID |State |Invoice|Price|Email
1001|Alabama|3 |4 |alabama@test.com
1001|Alabama|6 |6 |alabama@test.com
DF3:
ID |State |Invoice|Price|Email
1002|Georgia|5 |3 |georgia@test.com
我能够使用以下代码创建一个字典,其中每个 dataframe 按 ID 拆分:
dict_of_dfs = {
ID: group_df
for ID, group_df in df.groupby('ID')
}
我还能够使用以下代码创建一个列表,其中每个 dataframe 按 ID 拆分:
list_of_dfs = [
group_df
for _, group_df in df.groupby('ID')
]
使用pd.groupby
中的石斑鱼 -
df1, df2, df3 = [i[1] for i in df.groupby(['ID'])]
使用pd.Series.unique
的条件 -
df1, df2, df3 = [df[df['ID']==i] for i in df['ID'].unique()]
每种方法的输出 -
df1
ID State Invoice Price Email
0 1000 Texas 1 2 texas@test.com
1 1000 Texas 2 5 texas@test.com
3 1000 Texas 4 8 texas@test.com
#df2
ID State Invoice Price Email
2 1001 Alabama 3 4 alabama@test.com
5 1001 Alabama 6 6 alabama@test.com
#df3
ID State Invoice Price Email
4 1002 Georgia 5 3 georgia@test.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.