繁体   English   中英

结合 pandas 中的两个数据帧列表

[英]Combining two lists of data frames in pandas

我有以下变量:

info_list = [("class1", "student1"), ("class1", "student2"), ("class2", "student1")]
dataframe_list = [df1, df2, df3]

每个dfN如下所示:

df1:

A   B
10  20
23  31

df2:

A   B
2   9
11  51
60  89

df3:

A   B
1   2
3   9

我想将第 n 个 info_list 元素与 dataframe_list 的第 n 个数据帧匹配,然后将数据帧连接到一个。 下面是我想要的 dataframe:

class   student   A   B
class1  student1  10  20
class1  student1  23  31
class1  student2  2   9
class1  student2  11  51
class1  student2  60  89
class2  student1  1   2
class2  student1  3   9

由于我的数据很大,我想知道是否有一种巧妙的方法可以做到这一点。 谢谢!

concatkeys参数一起使用,然后将MultiIndex转换为具有重命名索引名称的列:

df = (pd.concat(dataframe_list, keys=info_list)
        .reset_index(level=2, drop=True)
        .rename_axis(('class','student'))
        .reset_index())
print (df)
    class   student   A   B
0  class1  student1  10  20
1  class1  student1  23  31
2  class1  student2   2   9
3  class1  student2  11  51
4  class1  student2  60  89
5  class2  student1   1   2
6  class2  student1   3   9

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM