pandas - DataFrame -修改索引、列标签
1、 修改列标签
def renameColName():
"""
修改列标签
:return:
"""
data = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
[41, 42, 43, 44],
[51, 52, 53, 54]
]
columns = ['col-1', 'col-2', 'col-3', 'col-4']
index = ['idx-1', 'idx-2', 'idx-3', 'idx-4', 'idx-5']
df = pd.DataFrame(data=data, index=index, columns=columns)
# 顺序修改列名
df1 = df.copy()
df1.columns = ['col-11', 'col-12', 'col-3', 'col-4']
print(df1)
# 映射修改列名
df2 = df.copy().rename(columns={
"col-1": "col-101",
"col-2": "col-201",
"col-3": "col-301"
})
print(df2)
df1 顺序修改列名 返回结果:
col-11 col-12 col-3 col-4
idx-1 11 12 13 14
idx-2 21 22 23 24
idx-3 31 32 33 34
idx-4 41 42 43 44
idx-5 51 52 53 54
df2 映射修改列名 返回结果:
col-101 col-201 col-301 col-4
idx-1 11 12 13 14
idx-2 21 22 23 24
idx-3 31 32 33 34
idx-4 41 42 43 44
idx-5 51 52 53 54
2、 reindex 修改数据
def reIndex():
"""
重新设定索引和columns
:return:
"""
data = [
[11, 12, 13, 14],
[21, 22, 23, np.nan],
[31, 32, 33, 34],
[41, 42, 43, np.nan],
[51, 52, 53, 54]
]
columns = ['col-1', 'col-2', 'col-3', 'col-4']
index = ['idx-1', 'idx-2', 'idx-3', 'idx-4', 'idx-5']
df = pd.DataFrame(data=data, index=index, columns=columns)
# 重置行索引-修改行数据
reindex = df.copy()
reindex = reindex.reindex(['idx-0', 'idx-1', 'idx-2', 'idx-3', 'idx-4', 'idx-5', 'idx-10'])
print(reindex)
# 重置列索引-修改列数据
recolumn = df.copy()
recolumn = recolumn.reindex(columns=['col-0', 'col-1', 'col-2', 'col-3', 'col-4', 'col-10'])
print(recolumn)
# 重置行、列索引-修改行列数据
reindexAndColumn = df.copy()
reindexAndColumn = reindexAndColumn.reindex(
index=['idx-0', 'idx-1', 'idx-2', 'idx-3', 'idx-4', 'idx-5', 'idx-10'],
columns=['col-0', 'col-1', 'col-2', 'col-3', 'col-4', 'col-10'])
print(reindexAndColumn)
# 删除并重新设置索引
reSetIndex = df.copy()
reSetIndex = reSetIndex.dropna().reset_index(drop=True)
print(reSetIndex)
reSetIndex 原始数据:
col-1 col-2 col-3 col-4
idx-1 11.0 12.0 13.0 14.0
idx-2 21.0 22.0 23.0 NaN
idx-3 31.0 32.0 33.0 34.0
idx-4 41.0 42.0 43.0 NaN
idx-5 51.0 52.0 53.0 54.0
reindex 重置行索引-修改行数据 返回结果:
col-1 col-2 col-3 col-4
idx-0 NaN NaN NaN NaN
idx-1 11.0 12.0 13.0 14.0
idx-2 21.0 22.0 23.0 NaN
idx-3 31.0 32.0 33.0 34.0
idx-4 41.0 42.0 43.0 NaN
idx-5 51.0 52.0 53.0 54.0
idx-10 NaN NaN NaN NaN
recolumn 重置列索引-修改列数据 返回结果:
col-0 col-1 col-2 col-3 col-4 col-10
idx-1 NaN 11 12 13 14.0 NaN
idx-2 NaN 21 22 23 NaN NaN
idx-3 NaN 31 32 33 34.0 NaN
idx-4 NaN 41 42 43 NaN NaN
idx-5 NaN 51 52 53 54.0 NaN
reindexAndColumn 重置行、列索引-修改行列数据 返回结果:
col-0 col-1 col-2 col-3 col-4 col-10
idx-0 NaN NaN NaN NaN NaN NaN
idx-1 NaN 11.0 12.0 13.0 14.0 NaN
idx-2 NaN 21.0 22.0 23.0 NaN NaN
idx-3 NaN 31.0 32.0 33.0 34.0 NaN
idx-4 NaN 41.0 42.0 43.0 NaN NaN
idx-5 NaN 51.0 52.0 53.0 54.0 NaN
idx-10 NaN NaN NaN NaN NaN NaN
reSetIndex 删除并重新设置索引 返回结果:
col-1 col-2 col-3 col-4
0 11 12 13 14.0
1 31 32 33 34.0
2 51 52 53 54.0
3、 set_index将列设置索引
def setIndex():
"""
将列设置索引
:return:
"""
data = [
["组织结构-1", "组织结构-1-1", 11, 12],
["组织结构-1", "组织结构-1-2", 11, 12],
["组织结构-1", "组织结构-1-3", 11, 12],
["组织结构-1", "组织结构-1-3", 13, 14],
["组织结构-2", "组织结构-2-1", 21, 22],
["组织结构-2", "组织结构-2-1", 21, 22],
["组织结构-2", "组织结构-2-3", 21, 22],
["组织结构-3", "组织结构-3-1", 31, 32],
["组织结构-3", "组织结构-3-1", 31, 32],
["组织结构-3", "组织结构-3-3", 31, 32],
["组织结构-4", "组织结构-4-1", 41, 42],
["组织结构-4", "组织结构-4-1", 41, 42],
["组织结构-4", "组织结构-4-3", 41, 42]
]
columns = ['一级单位', '二级单位', '男员工人数', '女员工人数']
df = pd.DataFrame(data=data, columns=columns)
# 单列将列设置为索引
setIndex_one = df.copy()
setIndex_one = setIndex_one.set_index(["一级单位"])
print(setIndex_one)
# 多列设置为索引
setIndex_two = df.copy()
setIndex_two = setIndex_two.set_index(["一级单位", "二级单位"])
print(setIndex_two)
setIndex_one 单列将列设置为索引 返回结果:
二级单位 男员工人数 女员工人数
一级单位
组织结构-1 组织结构-1-1 11 12
组织结构-1 组织结构-1-2 11 12
组织结构-1 组织结构-1-3 11 12
组织结构-1 组织结构-1-3 13 14
组织结构-2 组织结构-2-1 21 22
组织结构-2 组织结构-2-1 21 22
组织结构-2 组织结构-2-3 21 22
组织结构-3 组织结构-3-1 31 32
组织结构-3 组织结构-3-1 31 32
组织结构-3 组织结构-3-3 31 32
组织结构-4 组织结构-4-1 41 42
组织结构-4 组织结构-4-1 41 42
组织结构-4 组织结构-4-3 41 42
setIndex_two 多列设置为索引 返回结果:
男员工人数 女员工人数
一级单位 二级单位
组织结构-1 组织结构-1-1 11 12
组织结构-1-2 11 12
组织结构-1-3 11 12
组织结构-1-3 13 14
组织结构-2 组织结构-2-1 21 22
组织结构-2-1 21 22
组织结构-2-3 21 22
组织结构-3 组织结构-3-1 31 32
组织结构-3-1 31 32
组织结构-3-3 31 32
组织结构-4 组织结构-4-1 41 42
组织结构-4-1 41 42
组织结构-4-3 41 42