gpt4 book ai didi

python-3.x - Pandas:在进行规范化时忽略字符串列

转载 作者:行者123 更新时间:2023-12-03 15:45:59 26 4
gpt4 key购买 nike

我正在使用以下代码来规范化 Pandas 数据框:

df_norm = (df - df.mean()) / (df.max() - df.min())

当所有列都是数字时,这可以正常工作。但是,现在我在 df 中有一些字符串列并且上述归一化出现错误。有没有办法只对数据框的数字列执行这种规范化(保持字符串列不变)?谢谢!

最佳答案

您可以使用 select_dtypes计算所需列的值:

df = pd.DataFrame({'a': [1, 2, 3], 'b': ['a', 'b', 'c'], 'c': [4, 5, 6]})

df

a b c
0 1 a 4
1 2 b 5
2 3 c 6

df_num = df.select_dtypes(include=[np.number])

df_num

a c
0 1 4
1 2 5
2 3 6

然后你可以将它们分配回原来的 df:
df_norm = (df_num - df_num.mean()) / (df_num.max() - df_num.min())


df[df_norm.columns] = df_norm

df

a b c
0 -0.5 a -0.5
1 0.0 b 0.0
2 0.5 c 0.5

关于python-3.x - Pandas:在进行规范化时忽略字符串列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44639442/

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