簡體   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