如何将子集数据帧附加到单独的数据帧?

时间:2019-08-03 20:15:38

标签: pandas dataframe iteration

我正在尝试将数据框子集附加到单独的数据框。

到目前为止,我尝试将其追加到一个空的数据帧,但是它返回一个空的数据帧。

search_ID = ['36962G3P7', 'B3V3W13', 'XS1903485800', 'EXLS']

Search_Results = pd.DataFrame()    
for i in search_ID:    
    current_table = df.loc[df.isin([i]).any(axis=1)]
    Search_Results.append(current_table)

#Returns an empty dataframe

当我打印每次迭代时,它表明它正在为每个列表项创建新的数据框。

Search_ID = ['36962G3P7', 'B3V3W13', 'XS1903485800', 'EXLS']

Search_Results = pd.DataFrame()    
for i in Search_ID:    
     current_table = df.loc[df.isin([i]).any(axis=1)]
     print(current_table)

 #Returns 4 printed dataframes

当我在循环外追加时,表确实会追加到空数据框。

current_table = df.loc[df.isin(['36962G3P7']).any(axis=1)]
Search_Results.append(current_table)

#Returns a filled dataframe

1 个答案:

答案 0 :(得分:0)

append函数未就位,因此您需要在每次迭代时重新分配。

Search_Results = Search_Results.append(current_table)

根据附加的次数,它可能会很慢,因此您可以考虑:

Search_ID = ['36962G3P7', 'B3V3W13', 'XS1903485800', 'EXLS']

Search_Results = pd.concat([
    df.loc[df.isin([i]).any(axis=1)]
    for i in Search_ID
], axis=0)