我在一个dataframe title
和store
中有两个列,我希望通过这些列对dataframe进行子集:
In [84]:
2631 coffee‑mate sugar free french ... jet.com
2633 nestle coffeemate natural bliss ... jet.com
2634 coffee‑mate liquid coffee creamer, ... jet.com
3085 coffee‑mate hazelnut ... jet.com
当我尝试:
^{pr2}$我得到:
Out[84]:
Empty DataFrame
Columns: [title, store]
Index: []
但是,当我这样做时:
df[(df.title.str.contains('coffee')) & (df.store.str.contains('jet.com'))]
我得到:
2631 coffee‑mate sugar free french ... jet.com
2633 nestle coffeemate natural bliss ... jet.com
2634 coffee‑mate liquid coffee creamer, ... jet.com
3085 coffee‑mate hazelnut ... jet.com
我不知道这是怎么回事!在
我试着复制“coffee mate”来做一个等价性测试,得到了False
。在
'coffee‑mate' == 'coffee-mate'
Out[92]: False
我觉得这和编码有关,但不知道如何检测和修复问题。有人能帮忙吗?在
dataframe中的“coffee mate”使用非中断连字符(
u"\u2011"
),搜索字符串使用连字符非破坏性 http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=%E2%80%91&mode=char
你的连字符 http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=-&mode=char
虽然它们在您和我看来是一样的,但Python认为它们是两个不同的字符。如果您以后遇到这个问题,我只需将字符复制粘贴到这个UTF8 tool中就解决了这个问题—您明智地运行了一个}的比较
coffee-mate
和{相关问题 更多 >
编程相关推荐