- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 max 函数及其关键参数在给定实际电影标题的情况下找到与近似电影标题最接近的匹配。如果我定义一个示例列表并测试它的功能...
from difflib import SequenceMatcher as SM
movies = ['fake movie title', 'faker movie title', 'shaun died']
approx_title = 'Shaun of the Dead.'
max(movies, key = lambda title: SM(None, approx_title, title).ratio())
'shaun died'
但是我试图匹配单独数据框中的整个列,所以我尝试将 Pandas Series 转换为列表并运行相同的函数,但我得到了 type_error,即使我已经检查了数据类型movie 和 movie_lst 都是列表。
Old id New id Title Year Critics Score Audience Score Rating
NaN 21736.0 Peter Pan 1999.0 NaN 70.0 PG nothing objectionable
NaN 771471359.0 Dragonheart Battle for the Heartfire 2017.0 NaN 50.0 PG13
NaN 770725090.0 The Nude Vampire Vampire nue, La 1974.0 NaN 24.0 NR
2281.0 19887.0 Beyond the Clouds 1995.0 65.0 67.0 NR
10913.0 11286.0 Wild America 1997.0 27.0 59.0 PG violence
movie_lst = rt_info['Title'].tolist()
['Peter Pan',
'Dragonheart Battle for the Heartfire',
'The Nude Vampire Vampire nue, La',
'Beyond the Clouds',
'Wild America',
'Sexual Dependency',
'Body Slam',
'Hatchet II',
'Lion of the Desert Omar Mukhtar',
'Imagine That',
'Harold',
'A United Kingdom',
'Violent City The FamilyCitt violenta',
'Ratchet Clank',
'Wes Craven Presents Carnival of Souls',
'The Adventures of Ociee Nash',
'Blackfish',
'For Petes Sake',
'Daybreakers',
'The Big One',
'Godzilla vs Megaguirus',
'In a Lonely Place',
'Case 39', ...
]
max(movie_lst, key = lambda title: SM(None, approx_title, title).ratio())
TypeError Traceback (most recent call last)
<ipython-input-88-0022a3c1bdb9> in <module>()
----> 1 max(movie_lst, key = lambda title: SM(None, approx_title, title).ratio())
<ipython-input-88-0022a3c1bdb9> in <lambda>(title)
----> 1 max(movie_lst, key = lambda title: SM(None, approx_title, title).ratio())
/usr/lib/python3.4/difflib.py in __init__(self, isjunk, a, b, autojunk)
211 self.a = self.b = None
212 self.autojunk = autojunk
--> 213 self.set_seqs(a, b)
214
215 def set_seqs(self, a, b):
/usr/lib/python3.4/difflib.py in set_seqs(self, a, b)
223
224 self.set_seq1(a)
--> 225 self.set_seq2(b)
226
227 def set_seq1(self, a):
/usr/lib/python3.4/difflib.py in set_seq2(self, b)
277 self.matching_blocks = self.opcodes = None
278 self.fullbcount = None
--> 279 self.__chain_b()
280
281 # For each element x in b, set b2j[x] to a list of the indices in
/usr/lib/python3.4/difflib.py in __chain_b(self)
309 self.b2j = b2j = {}
310
--> 311 for i, elt in enumerate(b):
312 indices = b2j.setdefault(elt, [])
313 indices.append(i)
TypeError: 'float' object is not iterable
我很困惑为什么 - 任何帮助将不胜感激!
最佳答案
不是 pandas 专家,无法重现,但取决于文件的读取方式,因为有些标题(例如法国电影 11.6
)与 float 匹配,因此某些数据可能是float
而不是字符串(你的问题证明它是可能的:))
一个好的解决方法是将数据强制为字符串,如下所示:
movie_lst = [str(x) for x in movie_lst]
如果字符串已经是字符串 ( Should I avoid converting to a string if a value is already a string? ),它不会创建字符串的副本,因此它非常高效,并且您肯定只会获得字符串。
请注意,您可以通过打印找到违规者:
[x for x in movie_lst if not isinstance(x,str)]
关于python - 类型错误: 'float' 对象在内置 max 函数的列表上不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47932542/
我正在尝试将抓取的 xml 输出写入 json。由于项目不可序列化,抓取失败。 从这个问题来看,它建议您需要构建一个管道,未提供的答案超出了问题 SO scrapy serializer 的范围。 所
有没有一种方法可以通过重载函数来区分参数是在编译时可评估还是仅在运行时可评估? 假设我有以下功能: std::string lookup(int x) { return table::va
我正在使用 MVVM 模式编写一个应用程序。我通过将 View 的 DataContext 属性设置为 ViewModel 的实例来向 View 提供数据。一般来说,我只是从那里使用 Binding
对于一个项目,我正在使用带有简单 python module 的传感器收集多个红外命令。 . 我收到如下字节字符串: commando1= b'7g4770CQfwCTVT9bQDAzVEBMagGR
我有一个计算方法,可以在用户使用 Cartridge 作为我的商店框架结账时计算税费。 税 = 税 * 小数(str(settings.SHOP_DEFAULT_TAX_RATE)) 计算工作正常。然
我正在用 pygame 制作一个绘图程序,我想在其中为用户提供一个选项来保存程序的确切状态,然后在稍后重新加载它。在这一点上,我保存了我的全局字典的副本,然后遍历, pickle 每个对象。 pyga
在 C++11 之前,我可以使用它来使类不可复制: private: MyClass(const MyClass&); MyClass& operator=(const MyClass&); 使用 C
大家好 :) 我在我的 VC++ 项目中使用 1.5.4-all (2014-10-22)(适用于 x86 平台的 Microsoft Visual C++ 编译器 18.00.21005.1)。 我
我有一个 python 文件:analysis.py: def svm_analyze_AHE(file_name): # obtain abp file testdata = pd.
这个问题已经有答案了: How to serialize SqlAlchemy result to JSON? (37 个回答) 已关闭 4 年前。 我正在编写小查询来从 mysql 获取数据数据库,
我是 Python 初学者,我在 JSON 方面遇到了一些问题。在我正在使用的教程中有两个函数: def read_json(filename): data = [] if os.pa
我目前正在开发一个针对 iPad 的基于 HTML5 Canvas/JavaScript 的小型绘图应用程序。它在 Safari 中运行。到目前为止,除了一件事之外,一切都进展顺利。 如果我旋转设备,
以下代码无法使用 Visual Studio 2013 编译: #include struct X { X() = default; X(const X&) = delete;
嗨,我制作了一个文本分类分类器,我在其中使用了它,它返回一个数组,我想返回 jsonresponse,但最后一行代码给我错误 'array(['cycling'], dtype =object) 不可
我使用 Flask 和 Flask-Login 进行用户身份验证。 Flask-Sqlalchemy 将这些模型存储在 sqlite 数据库中: ROLE_USER = 0 ROLE_ADMIN =
如果您尝试发送不可 JSON 序列化的对象(列表、字典、整数等以外的任何对象),您会收到以下错误消息: "errorMessage": "Object of type set is not JSON
我在尝试 move std::vector 时遇到崩溃其中 T显然是不可 move 的(没有定义 move 构造函数/赋值运算符,它包含内部指针) 但为什么 vector 的 move 函数要调用 T
我尝试在用户成功登录后将 token 返回给他们,但不断收到以下错误: 类型错误:“字节”类型的对象不可 JSON 序列化 我该如何解决这个问题?这是我到目前为止的代码: if user:
我是一名优秀的程序员,十分优秀!