gpt4 book ai didi

python - 如何识别数据框中的标称列?

转载 作者:行者123 更新时间:2023-11-28 22:25:18 25 4
gpt4 key购买 nike

我有以下数据集(自制)。

a , b , c , 1 , 1.3  ,d
q , w , e , 2 , 45.5 ,r
z , x , c , 1 , 76.09,f
z , x , e , 4 , 0.09 ,r

这里最后一列是类别值。现在,当我将数据加载到数据框 (df) 并应用

pandas.get_dummies(df)

我得到这样的输出

   0_a  0_q  0_z  1_b  1_w  1_x  2_c  2_e  3_1  3_2  3_4  4_0.09  4_1.3  \
0 1 0 0 1 0 0 1 0 1 0 0 0 1
1 0 1 0 0 1 0 0 1 0 1 0 0 0
2 0 0 1 0 0 1 1 0 1 0 0 0 0
3 0 0 1 0 0 1 0 1 0 0 1 1 0

这里它也在转换小数值。如果我像这样指定列号

df = pandas.get_dummies(df , columns=[0,1,2])

我可以得到想要的输出

   3      4  0_a  0_q  0_z  1_b  1_w  1_x  2_c  2_e
0 1 1.3 1 0 0 1 0 0 1 0
1 2 45.5 0 1 0 0 1 0 0 1
2 1 76.09 0 0 1 0 0 1 1 0
3 4 0.09 0 0 1 0 0 1 0 1

我的问题是,如何在不指定列号的情况下执行此操作。是否可以仅识别标称数据(而非分数)的列号?

最佳答案

IIUC 我们可以使用DataFrame.select_dtypes()方法:

来源 DF:

In [151]: df
Out[151]:
0 1 2 3 4 5
0 a b c 1 1.30 d
1 q w e 2 45.50 r
2 z x c 1 76.09 f
3 z x e 4 0.09 r

解决方法:

In [155]: df.select_dtypes(['number']) \
.join(pd.get_dummies(df.select_dtypes(exclude=['number'])))
Out[155]:
3 4 0_a 0_q 0_z 1_b 1_w 1_x 2_c 2_e 5_d 5_f 5_r
0 1 1.30 1 0 0 1 0 0 1 0 1 0 0
1 2 45.50 0 1 0 0 1 0 0 1 0 0 1
2 1 76.09 0 0 1 0 0 1 1 0 0 1 0
3 4 0.09 0 0 1 0 0 1 0 1 0 0 1

关于python - 如何识别数据框中的标称列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com