加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 加入数据帧 – 一个带有多索引列,另一个没有

发布时间:2020-12-20 11:59:13 所属栏目:Python 来源:网络整理
导读:我正在尝试连接两个数据帧 – 一个使用multiindex列,另一个使用单个列名称.他们有类似的指数. 我收到以下警告: “用户警告:在不同级别之间合并会产生意想不到的结果(左边3个级别,右边1个)” 例如: arrays = [['bar','bar','baz','foo','qux','qux'],['one
我正在尝试连接两个数据帧 – 一个使用multiindex列,另一个使用单个列名称.他们有类似的指数.

我收到以下警告:
“用户警告:在不同级别之间合并会产生意想不到的结果(左边3个级别,右边1个)”

例如:

arrays = [['bar','bar','baz','foo','qux','qux'],['one','two','one','two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(np.random.randn(3,8),index=['A','B','C'],columns=index)
df2 = pd.DataFrame(np.random.randn(3),columns=['w'])
df3 = df.join(df2)

加入这两个数据帧的最佳方法是什么?

解决方法

这取决于你想要什么!您是否希望df2中的列与df中的第1或第2级列对齐?

您必须在df2的列中添加一个级别

与pd.concat超级cheezy

df.join(pd.concat([df2],axis=1,keys=['a']))

更好的方法

df2.columns = pd.MultiIndex.from_product([['a'],df2.columns])

df.join(df2)

enter image description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读