[英]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.