如何将许多python数据框组合到单个数据框?

时间:2018-08-08 19:16:36

标签: python python-3.x pandas dataframe

我有超过1500个python数据框,需要将它们组合成一个大数据框。我的问题是数据框具有唯一的列标题和不同的大小。

例如数据框1为:

type    sc98*c.firstname    sc98*c.lastname    sc98*c.username    text                  createdAt    statusofExpiration
need    John                Doe                johndoe            I need a new car.     111111       expired

数据框2为:

type    l8!7s4fn.firstname    l8!7s4fn.lastname    l8!7s4fn.username    text                    tags.0    tags.1    image.0        createdAt    statusOfExpiration
need    Matt                  Smith                mattsmith            I need a yoga trainer.  yoga      trainer   blankurl.com/  22222        fulfilled

最后,我想得到一个数据框,如:

type    firstname    lastname    username    text                    createdAt    statusofExpiration    tags.0    tags.1    image.0
need    John         Doe         johndoe     I need a new car.       111111       expired       
need    Matt         Smith       mattsmith   I need a yoga trainer.  222222       fulfilled             yoga      trainer   blankurl.com/

正如我提到的那样,由于可变的数据框大小,我将无法通过索引调用值,并且由于数据框具有唯一的标识符(例如id.username),因此无法通过列名称调用值。列标题。

总有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

由于数据帧具有唯一的列标题和不同的大小,因此没有简单的方法来连接数据帧。我建议您研究以下内容:

df.filter(like='firstname')  # select columns containing the word firstname

这样,您可以循环浏览所有数据框中的列名,并根据部分匹配对它们重命名。

查看此帖子:Pandas rename colums with wildcard

答案 1 :(得分:0)

您可以执行此操作以串联或合并多个数据框。希望有帮助!

df1 = DataFrame(
{
    'First Name': firstname_list,
    'Last Name': lastname_list,
 }
)

df2 = DataFrame(
{
    'Key1': value_list1,
    'Key2': value_list2,
 }
)

frames = [df1, df2]

concatenated_df = pd.concat(frames)
concatenated_df.to_csv(r'dataset.csv', sep=',', index=False)