本篇介绍dataframe索引用法
- 索引基本操作
df.columns = [list1] #列索引 aka 字段名
df.index = [list2] #行索引 aka 每行记录索引
#设置索引
df.set_index('col_name')
#重命名索引
df.rename(columns = {'old_name':'new_name'}) #或者是index = dict1
- 重置索引
#重置索引就是把索引重新作为列使用
df.reset_index(level=None, drop=False, inplace=False)
#level 指定要把层次化级别第几级转化为列,默认为全部索引
#drop 指定是否将原索引删掉,默认为False(不删除)
#inplace 是否覆盖df, 默认为False
实用实例
源数据
在清洗数据过程中 常碰到这样的mapping表。
最粗暴的方法当然是先在excel中 先拆成一维表的样子
但当行数比较多的时候,brutal force总是显得吃力又不讨好的
##loop中其实可以用一行代码搞定,但为了看得更清楚,我拆成了两步
col = ['KW','Category']
df2 = df.drop(col,axis=1)
for col in col:
temp = df[col].str.split('|',expand=True).stack().reset_index(level=1, drop=True).rename(col)
print(temp)
df2 = df2.join(test)