将数据框列表附加到python中的数据框列表

Posted

技术标签:

【中文标题】将数据框列表附加到python中的数据框列表【英文标题】:Appending a list of dataframes to a list of dataframe in 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)

谢谢!

【问题讨论】:

【参考方案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]

虽然可能不是最有效的。

【讨论】:

以上是关于将数据框列表附加到python中的数据框列表的主要内容,如果未能解决你的问题,请参考以下文章

将列表附加到R中的数据框

如何将列表项附加到数据框中的特定列?

将数据框列中的值附加到列表

将数据框中的值列表附加到新列[重复]

附加到熊猫数据框中的列表

迭代循环并将列表添加到新行或新列中的数据框