列级 - df.reset_index() - 索引转列
-%E7%B4%A2%E5%BC%95%E8%BD%AC%E5%88%97.png&w=1920&q=85)
索引转列
import numpy as np
import pandas as pd
reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')
df.reset_index(level=0, inplace=True, drop=True) # 索引转回列
df_rename = df.rename(columns={"index": "新名字"}) # 可能还要改名
level:可以是int, str, tuple, or list, default None等类型。作用是只从索引中删除给定级别。默认情况下删除所有级别。
drop=True 不想保留原来的index,默认值是False
inplace = True:不创建新的对象,直接对原始对象进行修改;
inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果。
col_level:int or str, default=0。如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一层。
col_fill:object, default。如果列有多个级别,则确定其他级别的命名方式。如果没有,则复制索引名称。
def pandas():
try:
df = pd.DataFrame()
ls = [
{'名字': '小A', 'd1': 1},
{'名字': '小A', 'd1': 2},
{'名字': '小B', 'd1': 2},
{'名字': '小B', 'd1': 2},
]
df = df.append(ls, ignore_index=True)
# 无原索引
df = df.reset_index(level=0, drop=True)
# 名字 d1
# 0 小A 1
# 1 小A 2
# 2 小B 2
# 3 小B 2
# 有原索引
df = df.reset_index(level=0)
# index 名字 d1
# 0 0 小A 1
# 1 1 小A 2
# 2 2 小B 2
# 3 3 小B 2
# 改原表
df.reset_index(level=0, inplace=True, drop=True)
# 名字 d1
# 0 小A 1
# 1 小A 2
# 2 小B 2
# 3 小B 2
# 错误用法
df = df.reset_index(level=0, inplace=True, drop=True)
# None
print(df)
except:
print("no")
raise
if __name__ == "__main__":
pandas()