我有以下类型的数据帧:
Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen
0 2 3 12669 9656 7561 214 2674 1338
1 2 3 7057 9810 9568 1762 3293 1776
2 2 3 6353 8808 7684 2405 3516 7844
3 1 3 13265 1196 4221 6404 507 1788
4 2 3 22615 5410 7198 3915 1777 5185
我想做两件事:
1)能够仅重新调整某些列而不是所有列,以使它们在0,1之间.我想只选择某些列,但不是通过他们的名字,而是选择他们的位置.想象一下,我想要改变200并且不想写所有这些.
我试过的代码是:
df /= df.max()
但它使所有列都在(0,1)之间而不仅仅是我想要的列.我找不到只选择其中一部分的方法.
2)我还想重新调整列,但不是它们之间,我的意思是我想只为牛奶制作一个刻度,另一个仅用于冷冻,例如.
我想重新调整每一个,例如在100之间划分,因为它们太大了,但是对于另一个列,我想将它除以10之间因为100太多了.我该怎么办?
解决方法:
对于1,您可以选择如下列列表:
df[['Milk','Frozen','Grocery']]
因此,要仅重新缩放这三列,请使用:
df[['Milk','Frozen','Grocery']] /= df[['Milk','Frozen','Grocery']].max()
如果这是您的第二个问题的意思,此方法已经使您的列彼此独立地扩展.
编辑:
如果要选择数据框的200个第一列,可以使用df.columns,它为您提供列的列表:
df[df.columns[:200]] /= df[df.columns[:200]].max()
数据帧上pandas上的max方法返回每列最大值的列表.因此,如果使用上面的代码,则每个列中的最大值将完全等于1.
如果您不想将其除以每列的最大值,而是将第一列除以n1,将第二列除以n2,则可以使用相同的表示法:
df[df.columns[:4]] /= [n1,n2,n3,n4]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。