1. 原数据
data = pd.DataFrame([
[np.nan, 2, np.nan, 0],
[True, 4, np.nan, 1],
[np.nan, np.nan, np.nan, 5],
[np.nan, 3, np.nan, 4]
], columns=list('ABCD'))
以下所有操作如无特殊说明均是生成新对象而不是修改原对象
2. 索引替换/修改
以下赋值操作会修改原对象, 函数操作均生成新对象
# 将第一列设为索引
data.set_index(0)
# 将索引设置为0-n
data.index = range(len(data))
# 将索引设置为['a', 'b', 'c', 'd']
data.index = ['a', 'b', 'c', 'd']
# 设置索引的名字为index
data.index.name='index'
# 将索引 0 替换为 a
data.rename({0: 'a'})
# 将列名 B 替换为 BB
data.rename({'B': 'BB'}, axis=1)
# 将列名设置为['AA', 'BB', 'CC', 'DD']
data.columns = ['AA', 'BB', 'CC', 'DD']
3. 值替换/缺失值处理
以下方法均可以用limit限制替换次数
# 将 1 和 True 替换为 100
# 由于在python中 True == 1 , 所以替换1或True都会对两者全部替换
data.replace({True: 100})
# 将列D的值1替换为100
data.replace({'D': {1: 100}})
# 将所用空值(None, NaN)替换为0
data.fillna(0)
# 将A列的空值替换为False, B列的空值替换为0
data.fillna({'A': False, 'B': 0})