![](/img/trans.png)
[英]Combining two data frames and showing their difference - Python 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
由于我的数据很大,我想知道是否有一种巧妙的方法可以做到这一点。 谢谢!
将concat
与keys
参数一起使用,然后将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.