python – 用sklearn扩展的pandas数据帧列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 用sklearn扩展的pandas数据帧列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2136字,纯文字阅读大概需要4分钟。
内容图文
![python – 用sklearn扩展的pandas数据帧列](/upload/InfoBanner/zyjiaocheng/706/8302357dc3f8489e8f4b0c1674e45efa.jpg)
我有一个带有混合类型列的pandas数据帧,我想将sklearn的min_max_scaler应用于某些列.理想情况下,我想在适当的位置进行这些转换,但还没有想出办法.我编写了以下代码:
import pandas as pd
import numpy as np
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler()
dfTest = pd.DataFrame({'A':[14.00,90.20,90.95,96.27,91.21],'B':[103.02,107.26,110.35,114.23,114.68], 'C':['big','small','big','small','small']})
min_max_scaler = preprocessing.MinMaxScaler()
def scaleColumns(df, cols_to_scale):
for col in cols_to_scale:
df[col] = pd.DataFrame(min_max_scaler.fit_transform(pd.DataFrame(dfTest[col])),columns=[col])
return df
dfTest
A B C
0 14.00 103.02 big
1 90.20 107.26 small
2 90.95 110.35 big
3 96.27 114.23 small
4 91.21 114.68 small
scaled_df = scaleColumns(dfTest,['A','B'])
scaled_df
A B C
0 0.000000 0.000000 big
1 0.926219 0.363636 small
2 0.935335 0.628645 big
3 1.000000 0.961407 small
4 0.938495 1.000000 small
我很好奇这是否是进行此转换的首选/最有效方式.有没有办法可以使用更好的df.apply?
我也很惊讶我无法使用以下代码:
bad_output = min_max_scaler.fit_transform(dfTest [‘A’])
如果我将整个数据帧传递给缩放器,它可以工作:
dfTest2 = dfTest.drop(‘C’,轴= 1)
good_output = min_max_scaler.fit_transform(dfTest2)
good_output
我很困惑为什么将系列传递给缩放器失败.在我上面的完整工作代码中,我曾希望只将一个系列传递给缩放器,然后将dataframe column =设置为缩放系列.我已经看到这个问题问了其他一些地方,但还没有找到一个好的答案.任何帮助了解这里发生的事情将不胜感激!
解决方法:
我不确定以前版本的熊猫是否阻止了这一点,但现在以下代码片段对我来说非常有效并且无需使用即可生成您想要的内容
>>> import pandas as pd
>>> from sklearn.preprocessing import MinMaxScaler
>>> scaler = MinMaxScaler()
>>> dfTest = pd.DataFrame({'A':[14.00,90.20,90.95,96.27,91.21],
'B':[103.02,107.26,110.35,114.23,114.68],
'C':['big','small','big','small','small']})
>>> dfTest[['A', 'B']] = scaler.fit_transform(dfTest[['A', 'B']])
>>> dfTest
A B C
0 0.000000 0.000000 big
1 0.926219 0.363636 small
2 0.935335 0.628645 big
3 1.000000 0.961407 small
4 0.938495 1.000000 small
内容总结
以上是互联网集市为您收集整理的python – 用sklearn扩展的pandas数据帧列全部内容,希望文章能够帮你解决python – 用sklearn扩展的pandas数据帧列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。