pandas列级df.reset_index()索引转列
-%E7%B4%A2%E5%BC%95%E8%BD%AC%E5%88%97.png&w=3840&q=85)
索引转列
import numpy as npimport pandas as pdreset_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,默认值是Falseinplace = 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") raiseif __name__ == "__main__": pandas()