3.4 transform变形金刚
创建数据:
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']) df.iloc[4,2] = None # 空数据 display(df)
transform 一样是支持 lambda 和自定义函数的:
df['Python'].transform(lambda x : x + 10)
def convert(x): if x < 5: return 100 else: return -100 df['Python'].transform(convert)
对一列进行不同的操作:
# 分别对 Python 这一列执行开平方和幂运算 df['Python'].transform([np.sqrt, np.exp])
对多列进行不同的操作:
df.transform({'Python':np.exp, 'Tensorflow':lambda x:x + 10, 'Keras':np.sqrt})
3.5 重排随机抽样哑变量
创建数据:
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)
3.5.1 重拍数据
index = np.random.permutation(10) # 重排数据: df.take(index)
3.5.2 随机抽样
注:随机抽样是允许重复的
# 随机抽样 index = np.random.randint(0, 10, size = 5) df.take(index)
3.5.3 哑变量
# 哑变量,独热编码,1表示有,0表示没有 df = pd.DataFrame({'key':['b','b','a','c','a','b']}) display(df) display(pd.get_dummies(df,prefix='',prefix_sep='')) # 可以理解成把字符串变成了数字