【发布时间】:2022-01-11 18:08:02
【问题描述】:
我希望从一个原始数据帧创建多个数据帧。我想遍历一列并在其匹配项上创建数据框。
TargetListID Placement_Description Buy_Component_Type NPI_ID First_Name
0 123456 test_test email 123456 paul
1 234567 test_test email 123456 paul
2 345678 test_test email 123456 paul
3 456789 test_test email 123456 paul
4 123456 test_test_test video 987654 karol
5 234567 test_test_test video 987654 karol
6 345678 test_test_test video 987654 karol
7 456789 test_test_test video 987654 karol
这是我原来的 df,我想为我浏览过的TargetListID 中的每场比赛创建一个新的 df:
Create multiple dataframes in loop
并尝试了以下方法:
def create_df_from_target_list_id(dataframe):
dataframe = {target_list_id: pd.DataFrame() for target_list_id in dataframe['TargetListID']}
return dataframe
test = create_df_from_target_list_id(df)
print(test)
这给了我:
{123456: Empty DataFrame
Columns: []
Index: [], 234567: Empty DataFrame
Columns: []
Index: [], 345678: Empty DataFrame
Columns: []
Index: [], 456789: Empty DataFrame
Columns: []
Index: []}
所以不确定我在这里到底做错了什么?将创建任何指针。原因是原始数据框可能有 1000 行。所以想在不知道TargetListId的情况下创建数据框@
我在这里尝试了 groupby:
def create_df_from_target_list_id(dataframe):
dataframe = dict(iter(dataframe.groupby('TargetListID')))
return dataframe
test = create_df_from_target_list_id(df)
print(test)
得到以下结果
{123456: TargetListID Placement_Description Buy_Component_Type NPI_ID First_Name
0 123456 test_test email 123456 paul
4 123456 test_test_test video 987654 karol, 234567: TargetListID Placement_Description Buy_Component_Type NPI_ID First_Name
1 234567 test_test email 123456 paul
5 234567 test_test_test video 987654 karol, 345678: TargetListID Placement_Description Buy_Component_Type NPI_ID First_Name
2 345678 test_test email 123456 paul
6 345678 test_test_test video 987654 karol, 456789: TargetListID Placement_Description Buy_Component_Type NPI_ID First_Name
3 456789 test_test email 123456 paul
7 456789 test_test_test video 987654 karol}
【问题讨论】: