pandas越来越难学,只能自己找趣味了,你该这么学,No.11

栏目: 数据库 · 发布时间: 4年前

内容简介:pandas啊,全是坑 没错,今天继续学习难的 其实从这篇开始,每一篇都是难得...... 你必须要努力看了文末有彩蛋我们先创建一个分层索引,看看效果

pandas啊,全是坑 没错,今天继续学习难的 其实从这篇开始,每一篇都是难得...... 你必须要努力看了

文末有彩蛋

分层/多级索引

我们先创建一个分层索引,看看效果

这个创建,办法有好几个

看一下吧

pandas越来越难学,只能自己找趣味了,你该这么学,No.11

通过 from_tuples 创建

import pandas as pd
import random

arrays = [['bar','bar','baz','baz','foo','foo'],
['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

print(tuples)

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
print(index)

s = pd.Series([3,1,4,1,5,9],index=index)

print(s)
复制代码

通过调用 pd.MultiIndex.from_tuples 我们可以传入一个元组列表搞定

也可以采用两个迭代中的每个元素配对

使用 MultiIndex.from_product

iterables = [['bar','baz','foo'],['one','two']]
index = pd.MultiIndex.from_product(iterables,names=['first','second'])
print(index)

复制代码

效果是一样的哦

在来一个比较方便的,生成一个多层索引

直接将列表传递到Series或者DataFrame中去看看

arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

s = pd.Series([3,1,4,1,5,9],index=arrays)

print(s)

复制代码

看好这个一一对应的关系就好了

pandas越来越难学,只能自己找趣味了,你该这么学,No.11

用到dataframe上,也是一样的哦 没啥区别

pandas越来越难学,只能自己找趣味了,你该这么学,No.11

最新的0.24版本的pandas里面 看,写就写最新的

增加了一个方法 MultiIndex.from_frame

MultiIndex.from_frame(df, sortorder=None, names=None)

使用起来,比较清晰

df = pd.DataFrame([['A','nice'],['A','to'],
                  ['B','good'],['B','ye']],
                  columns=['first','second'])

print(df)

index = pd.MultiIndex.from_frame(df)
print(index)
复制代码

注意啊,这个是0.24版本以上的pandas可以用

小注意

所有的MultiIndex构造函数都接收一个names参数,该参数存储index自己的名称,如果没有传递,默认值为None

索引可以设置在pandas对象的任意轴上

这种情况,直接抛栗子就好了

data = [[1,2,4,5,6,7],[1,2,3,4,5,6]]
arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(data,index=['A','B'],columns=index)
print(df)

复制代码

查阅结果,看到columns 列名,已经被修改成多级的

pandas越来越难学,只能自己找趣味了,你该这么学,No.11

如果你要继续尝试,别着急,新的代码来了

data = [[1,2,4,5],[1,2,3,4]]
arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(data,index=['A','B'],columns=index[:4])
print(df)
复制代码

直接使用index切片,选择索引的数量


以上所述就是小编给大家介绍的《pandas越来越难学,只能自己找趣味了,你该这么学,No.11》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

解放战争(上)(1945年8月—1948年9月)

解放战争(上)(1945年8月—1948年9月)

王树增 / 人民文学出版社 / 2009-8 / 60.00

《解放战争》为王树增非虚构文学著述中规模最大的作品。武器简陋、兵力不足的军队对抗拥有现代武器装备的兵力庞大的军队,数量不多、面积有限的解放区最终扩展成为九百六十万平方公里的共和国,解放战争在短短四年时间里演绎的是人类历史上的战争传奇。国际风云,政治智慧,时事洞察,军事谋略,军队意志,作战才能,作品具有宏阔的视角和入微的体察,包含着惊心动魄的人生沉浮和变幻莫测的战场胜负,尽展中国历史上规模最大的一场......一起来看看 《解放战争(上)(1945年8月—1948年9月)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具