【问题标题】:How to append subset dataframes to a separate dataframe?如何将子集数据帧附加到单独的数据帧?
【发布时间】:2019-08-03 20:15:38
【问题描述】:

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

到目前为止,我已经尝试附加到一个空数据帧,但它返回一个空数据帧。

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

【问题讨论】:

  • append 方法不会修改调用者数据帧。您必须执行Search_Results = Search_Results.append(current_table) 才能将追加操作的结果分配给Search_Results

标签: pandas dataframe iteration


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2022-11-29
    • 2021-04-22
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多