python - 数据框 fit_transform 抛出错误,看似不正确的错误
问题描述
我在 Python 中运行给定的行:
df = df.apply(lambda x: d[x.name].fit_transform(x))
并得到以下错误:
~/anaconda3/envs/python3/lib/python3.6/site-packages/numpy/lib/arraysetops.py in _unique1d(ar, return_index, return_inverse, return_counts)
278
279 if optional_indices:
--> 280 perm = ar.argsort(kind='mergesort' if return_index else 'quicksort')
281 aux = ar[perm]
282 else:
TypeError: ("'<' not supported between instances of 'str' and 'float'", 'occurred at index name')
我的文件中没有字符“<”,所以不确定错误是什么?
对 Python 来说是新手,因此非常感谢您对如何理解这些错误的任何见解。
解决方案
我认为这可能会发生,因为您没有将干净或正确的数据传递给您的fit_transform
. 如果没有在评论中回答我的问题,很难判断(d
代表什么df = df.apply(lambda x: d[x.name].fit_transform(x))
?)
我获取了一些虚拟数据并举例说明了如何使用 apply 将 afit_transform
应用于数据帧。
import random
import pandas as pd
import numpy as np
# Random dummy data
s = "Crime Type Summer|Crime Type Winter".split("|")
j = {x: [random.choice(["ASB", "Violence", "Theft", "Public Order", "Drugs"]) for j in range(300)] for x in s}
df = pd.DataFrame(j)
# Instantiate the vectorizer for use in the lambda function.
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer()
# Now we can call the transform directly in the lambda function.
df = df.apply(lambda x: cv.fit_transform(df[x.name].values))
这成功完成并给出:
Crime Type Summer (0, 1)\t1\n (1, 4)\t1\n (2, 2)\t1\n (2, 3...
Crime Type Winter (0, 5)\t1\n (1, 0)\t1\n (2, 0)\t1\n (3, 5...
dtype: object
推荐阅读
- php - Mysql where子句在codeigniter中不起作用
- php - 数据库提交和回滚取决于连接?
- node.js - 如何在nodejs中获取docusign访问令牌来签署文档
- javascript - 具有认知语音的 Azure Bot Framework 无法正常工作
- vba - 命名使用 .shapes.chart 创建的图表
- php - 使用 PHP 将列出的项目从 DOM 字符串分解为数组
- apache-camel - 阿帕奇骆驼和反病毒
- canvas - 使用 tcl/tk canvas 进行实时绘图
- android - 具有 singleTop 启动模式的 startActivityForResult 在 Android 9 上无法正常工作
- mongodb - 如何使用聚合查找集合中的重复条目