3.数据转换
3.1 轴和元素替换
3.1.1 轴的替换
🚩替换轴使用的是函数 rename():
import numpy as np import pandas as pd df = pd.DataFrame(data = np.random.randint(0, 10, size = (10, 3)), index = list('ABCDEFHIJK'), columns = ['Python', 'Tensorflow', 'Keras']) display(df) # 重命名轴索引 df.rename(index = {'A':'AA', 'B':'BB'}, columns = {'Python':'AI'}) display(df)
3.1.2 元素的替换
🚩元素的替换使用 replace() 函数:
# 将5替换为1024 display(df.replace(5, 1024)) # 把0,7替换为2048 display(df.replace([0, 7], 2048)) # 把0替换为519,6替换为666 display(df.replace({0:519, 6:666})) # 把 Python 这一列值为2的,替换为 -1024 display(df.replace({'Python':2}, -1024))
3.2 map Series元素改变
import numpy as np import pandas as pd df = pd.DataFrame(data = np.random.randint(0, 10, size = (10, 3)), index = list('ABCDEFHIJK'), columns = ['Python', 'Tensorflow', 'Keras']) display(df) # map 用来批量的修改元素 display(df['Keras'].map({6:'辰chen', 9:'AIoT'}))
从运行结果我们可以看出,使用 map 对数据进行替换后,未规定替换的数据会变成空数据。
如果我们想要保留原数据,可以写自定义函数:
def convert(x): if x == 6: return '辰chen' elif x == 9: return 'AIoT' else: return x df['Keras'].map(convert)
当然,我们在 Python 中还学习过 lambda 表达式,在这里同样可以使用:
# 把 Python 这一列大于等于15的值变成True,否则变成False df['Python'].map(lambda x : True if x >= 5 else False)