Python 创建具有连续名称的多数据帧

Python 创建具有连续名称的多数据帧,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,如何缩短下面的代码? 我知道这是一种愚蠢的编码方式,但我不确定如何创建df0、df1、df2。。。数据帧并将它们全部保存为变量。然后将它们合并为一个df。 例如: mylist=['ABC22'、'ABN33'、'ABM44'、 df0 = data[data['ID'] == mylist[0]] df1 = data[data['ID'] == mylist[1]] df2 = data[data['ID'] == mylist[2]] df3 = data[data['ID'] == my

如何缩短下面的代码? 我知道这是一种愚蠢的编码方式,但我不确定如何创建df0、df1、df2。。。数据帧并将它们全部保存为变量。然后将它们合并为一个df。 例如: mylist=['ABC22'、'ABN33'、'ABM44'、

df0 = data[data['ID'] == mylist[0]]
df1 = data[data['ID'] == mylist[1]]
df2 = data[data['ID'] == mylist[2]]
df3 = data[data['ID'] == mylist[3]]
df4 = data[data['ID'] == mylist[4]]
df5 = data[data['ID'] == mylist[5]]
df6 = data[data['ID'] == mylist[6]]
df7 = data[data['ID'] == mylist[7]]
df8 = data[data['ID'] == mylist[8]]
df9 = data[data['ID'] == mylist[9]]
df10 = data[data['ID'] == mylist[10]]
df11 = data[data['ID'] == mylist[11]]
df12 = data[data['ID'] == mylist[12]]
df13 = data[data['ID'] == mylist[13]]
df14 = data[data['ID'] == mylist[14]]
result0 = run_stage_one(df0, CurrentKeywordList)
result1 = run_stage_one(df1, CurrentKeywordList)
result2 = run_stage_one(df2, CurrentKeywordList)
result3 = run_stage_one(df3, CurrentKeywordList)
result4 = run_stage_one(df4, CurrentKeywordList)
result5 = run_stage_one(df5, CurrentKeywordList)
result6 = run_stage_one(df6, CurrentKeywordList)
result7 = run_stage_one(df7, CurrentKeywordList)
result8 = run_stage_one(df8, CurrentKeywordList)
result9 = run_stage_one(df9, CurrentKeywordList)
result10 = run_stage_one(df10, CurrentKeywordList)
result11 = run_stage_one(df11, CurrentKeywordList)
result12 = run_stage_one(df12, CurrentKeywordList)
result13 = run_stage_one(df13, CurrentKeywordList)
result14 = run_stage_one(df14, CurrentKeywordList)
Merged_df = pd.concat([result0, result1, result2, result3 , result4, result5, result6, result7,
                       result8, result9, result10, result11, result12, result13, result14], ignore_index=True)
Analysis = CategorizingOutput(Merged_df) here

我不得不猜测你想做的事情的某些部分,但我认为这样做会奏效

data2=data.loc[data['ID'].isin(mylist),:]
合并的_df=pd.concat([
运行第一阶段(df,CurrentKeywordList)
对于ID,数据2中的df.groupby('ID'))
])
分析=分类输出(合并)

我忽略了对于df0,您使用的是ApplicationID,而对于其余部分,它只是ID。

我不得不猜测您正在尝试做的某些部分,但我认为类似的操作会起作用

data2=data.loc[data['ID'].isin(mylist),:]
合并的_df=pd.concat([
运行第一阶段(df,CurrentKeywordList)
对于ID,数据2中的df.groupby('ID'))
])
分析=分类输出(合并)

我忽略了对于df0,您使用了ApplicationID,而对于其余部分,它只是ID。

假设
ID
ApplicationID
的缩写,并且来自数据的所有ID都在“mylist”中

result = [run_stage_one(dfi, CurrentKeywordList)
    for id, dfi in data.groupby('ApplicationId')]

然后合并等等…

假设
ID
ApplicationId
的缩写,并且数据中的所有ID都在“mylist”中

result = [run_stage_one(dfi, CurrentKeywordList)
    for id, dfi in data.groupby('ApplicationId')]

然后合并等等…

ApplicationID
[0]
ID
在其他位置故意的吗?为什么不在mylist中的值上迭代,在循环中子集您的数据帧并将该变量保存到另一个列表中,然后在最后使用pd.concat?你能把这个例子简化一点,使它重现吗?我不确定mylist、CurrentKeywordList和CategorizingOutput的内容是什么。@QuangHoang不,我已经更新了代码,这是我的问题,有任何答案有帮助吗?是
ApplicationID
位于
[0]
ID
位于其他位置是有意的吗?为什么不只是迭代mylist中的值,在循环中,将您的数据帧子集并将该变量保存到另一个列表中,然后在最后使用pd.concat?您能否将示例简化一点以使其可复制?我不确定mylist、CurrentKeywordList和CategorizingOutput的内容。@QuangHoang不,我已经更新了代码,那是我的badhi,有任何答案有用吗?