首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据给定的数据创建多级数据

根据给定的数据创建多级数据
EN

Stack Overflow用户
提问于 2018-10-23 10:44:24
回答 1查看 325关注 0票数 4

考虑到两个不同的df:

‘’

代码语言:javascript
运行
复制
            a  b         
2016-11-21  2  1
2016-11-22  3  4
2016-11-23  5  2 
2016-11-24  6  3 
2016-11-25  6  3

“b”

代码语言:javascript
运行
复制
            a  b         
2016-11-21  3  0
2016-11-22  1  0
2016-11-23  1  6 
2016-11-24  1  5 
2016-11-25  0  2

如何创建这种形状的“多级”数据:

“c”

代码语言:javascript
运行
复制
            A     B
            a  a  b  b           
2016-11-21  2  3  1  0
2016-11-22  3  1  4  0
2016-11-23  5  1  2  6
2016-11-24  6  1  3  5
2016-11-25  6  0  3  2

*index是一个“datatime”对象

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 10:47:57

使用concat

代码语言:javascript
运行
复制
df = pd.concat([A, B], keys=('A','B'), axis=1)
print (df)
            A     B   
            a  b  a  b
2016-11-21  2  1  3  0
2016-11-22  3  4  1  0
2016-11-23  5  2  1  6
2016-11-24  6  3  1  5
2016-11-25  6  3  0  2

对于排序级别,添加sort_index

代码语言:javascript
运行
复制
df = pd.concat([A, B], keys=('A','B'), axis=1).sort_index(axis=1, level=1)
print (df)
            A  B  A  B
            a  a  b  b
2016-11-21  2  3  1  0
2016-11-22  3  1  4  0
2016-11-23  5  1  2  6
2016-11-24  6  1  3  5
2016-11-25  6  0  3  2

不建议,但有可能:

代码语言:javascript
运行
复制
df = pd.concat([A, B], keys=('A','B'), axis=1)

cols = df.columns.get_level_values(0)
df = df.sort_index(axis=1, level=1)
df.columns = [cols, df.columns.get_level_values(1)]
print (df)
            A     B   
            a  a  b  b
2016-11-21  2  3  1  0
2016-11-22  3  1  4  0
2016-11-23  5  1  2  6
2016-11-24  6  1  3  5
2016-11-25  6  0  3  2

因为接下来是问题选择列,因为重复的列名:

代码语言:javascript
运行
复制
print (df['A'])
            a  a
2016-11-21  2  3
2016-11-22  3  1
2016-11-23  5  1
2016-11-24  6  1
2016-11-25  6  0
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52947074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档