我需要将Pandas数据框中的一列分类变量转换为一个数值,该数值对应于列中唯一分类变量数组的索引(长篇故事!),这里是一个代码片段,它实现了:
import pandas as pd
import numpy as np
d = {'col': ["baked","beans","baked","baked","beans"]}
df = pd.DataFrame(data=d)
uniq_lab = np.unique(df['col'])
for lab in uniq_lab:
df['col'].replace(lab,np.where(uniq_lab == lab)[0][0].astype(float),inplace=True)
Run Code Online (Sandbox Code Playgroud)
它转换数据框:
col
0 baked
1 beans
2 baked
3 baked
4 beans
Run Code Online (Sandbox Code Playgroud)
进入数据框:
col
0 0.0
1 1.0
2 0.0
3 0.0
4 1.0
Run Code Online (Sandbox Code Playgroud)
如预期的.但我的问题是,当我尝试在大数据文件上运行类似的代码时,我的愚蠢的小循环(我想到这一点的唯一方法)就像糖蜜一样慢.我只是好奇是否有人对是否有任何方法更有效地做到这一点有任何想法.提前感谢任何想法.