pandas笔记:index和columns操作

pandas笔记:index和columns操作

  • 备忘录
    • 自定义展示dataframe的行数和列数
    • 修改行索引名称
    • 修改列名
    • 将列设置为行索引
    • 重设索引
    • 删除列操作
    • 多表合并,生成复合表头
    • 将多张dataframe添加进一张excel的不同sheet中

备忘录

自定义展示dataframe的行数和列数

// 展示所有列
pd.set_option('display.max_columns', None)
// 展示所有行
pd.set_option('display.max_rows', None)
//自定义行数列数
pd.set_option('display.max_rows', 1000) # 最多展示1000行
pd.set_option('display.max_columns', 10) # 最多展示10

修改行索引名称

df.index.name = "index_new"

修改列名

两种方式:

df.columns = ['col1','col2','col3','col4']
df.rename(columns={'a':'A'}, inplace=Ture)#在原数据上修改

将列设置为行索引

df.set_index('col1')

重设索引

df.reset_index(inplace = True)#在原数据上修改,原索引变为列
df.reset_index(drop = True,inplace = True)#在原数据上修改,删除原索引

删除列操作

两种方式:

del df['col1']
df.drop(['col1','col2'],axis = 1)
df.drop(columns = ['col1','col2'])

删除复合表头的指定一列:

df.drop(('第一级表头','第二级表头'),axis = 1)

多表合并,生成复合表头

场景:多张格式相同的表,只是日期或对象不同,需要对比来看

columns1 = ['0-9','9-10','10-11','11-12','12-13','13-14','14-15','15-16','16-17','17-24']#每张表中的一级表头列名
keys1 = ['申请数', '审批数','送达数']#生成新表的二级表头的名称,这里代表数据的业务含义
keys2 = ['0-9:00','9:00-10:00','10:00-11:00','11:00-12:00','12:00-13:00','13:00-14:00','14:00-15:00','15:00-16:00','16:00-17:00','17:00-24:00']#生成新表的一级表头名称
df1 = pd.concat([
        pd.concat([table1[column], table2[column],table3[column]],keys=keys1, axis=1)for column in columns1], axis=1, keys=keys2).fillna(0)

以上代码将三张表合并为一张,效果如下:

pandas笔记:index和columns操作_第1张图片

将多张dataframe添加进一张excel的不同sheet中

with pd.ExcelWriter(r'C:\Users\数据\Desktop\data\result.xlsx') as writer:
    df1.to_excel(writer, sheet_name='df1')
    df2.to_excel(writer, sheet_name='df2')

你可能感兴趣的:(python,pandas)