【问题标题】:Appending a list of dataframes to a list of dataframe in python将数据框列表附加到python中的数据框列表
【发布时间】:2019-09-08 00:03:30
【问题描述】:

我希望找到一个简单的解决方案,但我一直没能找到。假设我有两个列表,每个列表有 4 个数据框。列表中的每一项都是一个数据框。一个列表被称为

list_of_df1

另一个叫

list_of_df2

我想知道是否可以将数据帧从一个列表附加到另一个列表中。最终目标是拥有一个包含所有 8 个数据帧的组合列表。很抱歉我没有提供样本数据。我希望这是一个简单的代码行。

这是我尝试过的:

list_of_df1.append(list_of_df2)
list_of_df1.insert(list_of_df2)

谢谢!

【问题讨论】:

    标签: python pandas list dataframe


    【解决方案1】:

    考虑到list_of_df1list_of_df2 是列表:

    list_of_df1.extend(list_of_df2)
    

    【讨论】:

    • 谢谢!此代码有效,但我将使用只需将两个列表添加在一起的解决方案。
    【解决方案2】:

    就这么简单:

    list_of_df1 += list_of_df2
    

    这实际上比使用extend() 效率略高,因为它不包括函数调用的开销。

    【讨论】:

    • 谢谢!这正是我一直在寻找的简单解决方案!
    • @Jake 很高兴我能帮上忙! :)
    【解决方案3】:

    试试pd.concat(frames)

    import pandas as pd
    
    d1 = {'ID': [10,20,40,50], 'Name': ["Bob", "John","test","Foo"]}   
    d2 = {'ID': [10,20,40,50], 'Name': ["Bob", "John","test","Foo"]}   
    df1 = pd.DataFrame(data=d1)
    df2 = pd.DataFrame(data=d2)
    
    frames = [df1, df2]
    result = pd.concat(frames)
    print(result)
    

    输出:

    ID  Name
     10   Bob
     20  John
     40  test
     50   Foo
     10   Bob
     20  John
     40  test
     50   Foo
    

    如果您有 DF 列表,那么 @ruohola 发布的解决方案就是您正在寻找的解决方案。

    【讨论】:

    • 我认为如果他想要一个包含列表中所有数据帧内容的数据帧,这将是有效的,但他说他想要一个所有数据帧的列表。
    • 好的,让我更新答案。谢谢。我以为他在说列表是指数据框中的数据列表。
    • 这不符合 OP 的要求。
    【解决方案4】:

    加星号的表达式删除列表中的括号。

    [*list_df1, *list_df2]
    

    虽然可能不是最有效的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2019-10-12
      • 2012-09-26
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多