第十节 pandas索引的增删改查

import pandas as pd
pd.options.display.max_rows = 10  # 设置显示行数

#读入是直接指定索引
df1 = pd.read_csv(r'E:\anacondatest\PythonData\高校信息.csv', encoding='gbk', index_col='学校名称')
print(df1)

#生成复合索引
df2 = pd.read_csv(r'E:\anacondatest\PythonData\高校信息.csv', encoding='gbk', index_col=['学校名称','类型'])
print(df2)

# 已有数据框指定索引列
'''
drop:建立索引后是否删除变量列,默认删除true
append:是否在原基础上添加索引,默认替换
inplace:是否直接修改原数据框,默认否
'''
df1.set_index(['类型','学校名称', '名次'], drop=False, append=True, inplace=True)
print(df1)

# 将索引还原为变量列
'''
drop:是否将索引直接删除。而不是还原为变量列,默认还原
level:对于多重索引,确定转换哪个级别为变量,同时进行多个索引的还原
inplace:是否直接修改原数据框,默认否
'''
df1.reset_index(inplace=True)  # 不设置新索引,默认将原来的索引直接还原成变量列
df1.reset_index(inplace=True, level=['类型','学校名称'], drop=False)
print(df1)

# 引用索引,索引仍然有存储格式,注意区分数值型和字符型的引用方式
print(df1.index)  # c查看索引

# 修改索引名,本质上和变量名的修改方式相同,None表示的索引没有名字,顺序和df1.index输出的顺序一致
df1.index.names = [None, '索引1', '索引2']

# 修改索引值,本质上是替换
df1.index[3] = 6  # 因为是替换,所以无法只改变一个索引的值
df1.index = []  # 列表中给所有与原索引一一对应的值

 

posted @ 2020-03-24 21:28  kog_maw  阅读(237)  评论(0编辑  收藏  举报