我正在寻找Pythonic方法来做与bind_rows(R中的dplyr包)相同的方法,它从data.frames列表中进行数据帧连接,并自动将每个data.frame的名称添加为.id列以记住其中行来自.
df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['letter', 'number'])
df2 = df1.copy()
pd.concat([df1, df2])
预期产量:
#### .id letter number
#### 0 df1 a 1
#### 1 df1 b 2
#### 0 df2 a 1
#### 1 df2 b 2
谢谢!
解决方法:
检查键
pd.concat([df1, df2], keys=['df1', 'df2'],names =['id','index']).reset_index(level=0)
Out[880]:
id letter number
index
0 df1 a 1
1 df1 b 2
0 df2 a 1
1 df2 b 2
如果要动态创建密钥
pd.concat({x : y for x,y in enumerate([df1, df2])},names =['id','index']).reset_index(level=0)
Out[879]:
id letter number
index
0 0 a 1
1 0 b 2
0 1 a 1
1 1 b 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。