本文主要是介绍数据分析-day04-pandas-dataFrame、series的复合索引的操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#!usr/bin/env python
#-*- coding:utf-8 _*-
'''
@author:Administrator
@file: pandas_dataframe_series_index_demo.py
@time: 2020-01-05 下午 1:33
'''
import pandas as pd;
import numpy as np
a = pd.DataFrame({'a': range(7),'b': range(7, 0, -1),'c': ['one','one','one','two','two','two', 'two'],'d': list("hjklmno")})
print(a)
print("==================将列设置为索引")
b=a.set_index(["c","d"]);
print(b)
#series的复合索引取值,直接在括号中写索引就可以了
print("===================series的复合索引取值,直接在括号中写索引就可以了")
c=b["a"]
print(c)
print("===================series的复合索引取值 c['one']['k']")
d=c['one']['k'];print(d)
print("===================series的复合索引取值,通过遍历内索引,获取数据")
#level相当于就是复合索引的里外层,交换了里外层
e=c.swaplevel() #################################################要选取一列c=b["a"],不能用b
print(e)
#获取指定二级索引
print("获取指定二级索引:")
d=e["h"];print(d)
print("===================dataframe的复合索引取值,直接在括号中写索引就可以了")
b=a.set_index(["c","d"]);
print(b)
c=b[["a"]]
print("==================获取a列")
print(c)
e=c.loc["one"].loc["k"]
print("==================获取e:")
print(e)
print("=============swapper:")
d=c.swaplevel().loc["k"] ###################c=b[["a"]] 是一个dataframe,注意和series的区别
print(d)
a b c d
0 0 7 one h
1 1 6 one j
2 2 5 one k
3 3 4 two l
4 4 3 two m
5 5 2 two n
6 6 1 two o
==================将列设置为索引
a b
c d
one h 0 7
j 1 6
k 2 5
two l 3 4
m 4 3
n 5 2
o 6 1
===================series的复合索引取值,直接在括号中写索引就可以了
c d
one h 0
j 1
k 2
two l 3
m 4
n 5
o 6
Name: a, dtype: int64
===================series的复合索引取值 c['one']['k']
2
===================series的复合索引取值,通过遍历内索引,获取数据
d c
h one 0
j one 1
k one 2
l two 3
m two 4
n two 5
o two 6
Name: a, dtype: int64
获取指定二级索引:
c
one 0
Name: a, dtype: int64
===================dataframe的复合索引取值,直接在括号中写索引就可以了
a b
c d
one h 0 7
j 1 6
k 2 5
two l 3 4
m 4 3
n 5 2
o 6 1
==================获取a列
a
c d
one h 0
j 1
k 2
two l 3
m 4
n 5
o 6
==================获取e:
a 2
Name: k, dtype: int64
=============swapper:
a
c
one 2
这篇关于数据分析-day04-pandas-dataFrame、series的复合索引的操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!