如何改变Series和DataFrame对象?

  • 增加或重排:​​ 重新索引
    ​​重新索引​: .reindex()能够改变或重排Series和DataFrame索引

.reindex()

参数

说明

index, columns

新的行列索引

fill_value

重新索引中,用于填充缺失位置的值

method

填充方法,ffill当前值向前填充,bfill当前值向后填充

limit

最大填充量

copy

默认True,生成新的对象,False时,新旧相等不复制

import pandas as pd
dt = {
'城市': ['北京', '上海', '广州', '深圳', '珠海'],
'环比': [100, 140, 173, 157, 137],
'同比': [70, 87, 55, 69, 72],
'定基': [9, 8, 7, 6, 7]
}
df = pd.DataFrame(dt, index=['c1', 'c2', 'c3', 'c4', 'c5'])
print(df)

城市 环比 同比 定基
c1 北京 100 70 9
c2 上海 140 87 8
c3 广州 173 55 7
c4 深圳 157 69 6
c5 珠海 137 72 7

调整行顺序

re_df = df.reindex(index=['c2', 'c1', 'c3', 'c4', 'c5'])
print(re_df)

城市 环比 同比 定基
c2 上海 140 87 8
c1 北京 100 70 9
c3 广州 173 55 7
c4 深圳 157 69 6
c5 珠海 137 72 7

调整列顺序

re_df = df.reindex(columns=['环比', '城市', '同比', '定基'])

环比 城市 同比 定基
c1 100 北京 70 9
c2 140 上海 87 8
c3 173 广州 55 7
c4 157 深圳 69 6
c5 137 珠海 72 7

新增加一列​​​df.columns.insert(位置, '列名')​

new_c = df.columns.insert(6, '新增')

Index(['城市', '环比', '同比', '定基', '新增'], dtype='object')

新增加一列赋值​​​df.reindex(columns=new_c , fill_value=值)​

new_d = df.reindex(columns=new_c, fill_value=200)
print(new_d)

新增 城市 环比 同比 定基
c1 200 北京 100 70 9
c2 200 上海 140 87 8
c3 200 广州 173 55 7
c4 200 深圳 157 69 6
c5 200 珠海 137 72 7

索引类型的常用方法

方法

说明

.append

链接另一个Index对象, 产生新的Index对象

.diff(idx)

计算差集,产生新的Index对象

.intersection(idx)

计算索引交集

.union(idx)

计算索引并集

.delete(loc)

删除loc位置处的元素

.insert(loc, e)

在loc位置添加一个元素e

​删除loc位置处的元素df.columns.delete(index)或者df.columns.delete([index1, index2])​

# 删除了同比
nc = df.columns.delete(2)

Index(['城市', '环比', '定基'], dtype='object')

​在loc位置添加一个元素e​

# 在2位置添加一个索引
new_c = df.columns.insert(2, '新增')

Index(['城市', '环比', '新增', '同比', '定基'], dtype='object')

输出结果

new_d = df.reindex(columns=new_c, fill_value=200)

城市 环比 新增 同比 定基
c1 北京 100 200 70 9
c2 上海 140 200 87 8
c3 广州 173 200 55 7
c4 深圳 157 200 69 6
c5 珠海 137 200 72 7
  • 删除:​​ drop
    .drop()能够删除Series和DataFrame指定行或列索引
删除行: df.drop(index)  df.drop([index, index2])

删除列: df.drop(column) df.drop([column1, column2], axis=1)
print(df.drop(['c1', 'c2']))

城市 环比 同比 定基
c3 广州 173 55 7
c4 深圳 157 69 6
c5 珠海 137 72 7