Pandas (GeoPandas)笔记:set_index & reset_index
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas (GeoPandas)笔记:set_index & reset_index相关的知识,希望对你有一定的参考价值。
python包介绍:GeoPandas(初识)_UQI-LIUWJ的博客-CSDN博客
python 库整理:pandas_UQI-LIUWJ的博客-CSDN博客
1 set_index
将 DataFrame
中的列转化为行索引。
默认情况下,转换之后,原来的列将不见
1.1 基本使用方法
DataFrame.set_index(
keys,
drop=True,
append=False,
inplace=False,
verify_integrity=False)
1.2 参数说明
keys | 列标签(需要设置为索引的列) |
drop | 删除用作新索引的列 默认为True |
append | 是否将列附加到现有索引 默认为False |
inplace | 表示当前操作是否对原数据生效 默认为False |
verify_integrity | 检查新索引的副本 将其设置为False将提高该方法的性能 默认为false |
1.3 举例说明
1.3.0 原始数据
import pandas as pd
data='a':range(7),
'b':range(7,0,-1),
'c':['one','one','one','two','two','two','two'],
'd':[0,1,2,0,1,2,3]
f1=pd.DataFrame(data)
f1
'''
a b c d
0 0 7 one 0
1 1 6 one 1
2 2 5 one 2
3 3 4 two 0
4 4 3 two 1
5 5 2 two 2
6 6 1 two 3
'''
1.3.1 默认情况
f1.set_index(['c'])
'''
a b d
c
one 0 7 0
one 1 6 1
one 2 5 2
two 3 4 0
two 4 3 1
two 5 2 2
two 6 1 3
'''
1.3.2 保留索引所在的列(drop)
f1.set_index(['c'],drop=False)
'''
a b c d
c
one 0 7 one 0
one 1 6 one 1
one 2 5 one 2
two 3 4 two 0
two 4 3 two 1
two 5 2 two 2
two 6 1 two 3
'''
1.3.3 多重索引
f1.set_index(['c','d'], drop=False)
'''
a b c d
c d
one 0 0 7 one 0
1 1 6 one 1
2 2 5 one 2
two 0 3 4 two 0
1 4 3 two 1
2 5 2 two 2
3 6 1 two 3
'''
f1.set_index(['d','c'], drop=False)
'''
a b c d
d c
0 one 0 7 one 0
1 one 1 6 one 1
2 one 2 5 one 2
0 two 3 4 two 0
1 two 4 3 two 1
2 two 5 2 two 2
3 two 6 1 two 3
'''
1.3.4 添加到原有索引(append)
f1.set_index('c', append=True)
'''
a b d
c
0 one 0 7 0
1 one 1 6 1
2 one 2 5 2
3 two 3 4 0
4 two 4 3 1
5 two 5 2 2
6 two 6 1 3
'''
1.3.5 手动指定索引
f1.set_index([pd.Index([1,2,3,4,5,6,7]), 'c'])
'''
a b d
c
1 one 0 7 0
2 one 1 6 1
3 one 2 5 2
4 two 3 4 0
5 two 4 3 1
6 two 5 2 2
7 two 6 1 3
'''
1.3.6 索引计算
s = pd.Series([1,2,3,4,5,6,7])
f1.set_index([s, s**2])
'''
a b c d
1 1 0 7 one 0
2 4 1 6 one 1
3 9 2 5 one 2
4 16 3 4 two 0
5 25 4 3 two 1
6 36 5 2 two 2
7 49 6 1 two 3
1
'''
1.3.7 修改原始数据(inplace)
f1.set_index(['c','d'], inplace=True)
f1
'''
a b
c d
one 0 0 7
1 1 6
2 2 5
two 0 3 4
1 4 3
2 5 2
3 6 1
'''
2 reset
重新设置 DataFrame
索引
2.1 使用方法
DataFrame.reset_index(
level=None,
drop=False,
inpalce=False,
col_level=0,
col_fill=' ')
2.2 参数说明
level | 数值类型, int、str、tuple或list 默认无——删除所有级别的索引 指定level——删除指定级别 |
drop | 当指定 drop=False 时,则索引列会被还原为普通列; 否则,经设置后的新索引值被会丢弃 默认为False |
inplace | 布尔类型 是否修改原始数据框 默认False |
2.3 举例
2.3.0 原始数据
import pandas as pd
data='a':range(7),
'b':range(7,0,-1),
'c':['one','one','one','two','two','two','two'],
'd':[0,1,2,0,1,2,3]
f1=pd.DataFrame(data)
f1=f1.set_index(['c','d'])
f1
'''
a b
c d
one 0 0 7
1 1 6
2 2 5
two 0 3 4
1 4 3
2 5 2
3 6 1
'''
2.3.1 level
level=数字,或者等于索引的名称都可以
f1.reset_index(level='c')
#等价于
f1.reset_index(level=0)
'''
c a b
d
0 one 0 7
1 one 1 6
2 one 2 5
0 two 3 4
1 two 4 3
2 two 5 2
3 two 6 1
'''
f1.reset_index(level='d')
#等价于
f1.reset_index(level=1)
'''
d a b
c
one 0 0 7
one 1 1 6
one 2 2 5
two 0 3 4
two 1 4 3
two 2 5 2
two 3 6 1
'''
以上是关于Pandas (GeoPandas)笔记:set_index & reset_index的主要内容,如果未能解决你的问题,请参考以下文章
python 将带有坐标的pandas数据帧转换为geopandas数据帧。
python 将带有坐标的pandas数据帧转换为geopandas数据帧。
Python中的GeoPandas和GeoDataFrame