这是可行的(使用Pandas 12 dev)
table2=table[table['SUBDIVISION'] =='INVERNESS']
然后我意识到我需要用“开始于”来选择字段,因为我遗漏了一堆。 所以按照熊猫医生的说法,我尽可能的跟着他
criteria = table['SUBDIVISION'].map(lambda x: x.startswith('INVERNESS'))
table2 = table[criteria]
并得到attributeRor:“float”对象没有属性“startswith”
所以我尝试了另一种语法
table[[x.startswith('INVERNESS') for x in table['SUBDIVISION']]]
参考http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing 第4节:列表理解和系列地图法也可用于产生更复杂的标准:
我错过了什么?
您可以使用^{} DataFrame方法来给出更一致的结果:
布尔索引也可以很好地工作(我更喜欢使用
loc
,但是没有它也可以工作):是的。
看起来序列/列中至少有一个元素是float,它没有startswith方法,因此AttributeError,list comprehension应该引起相同的错误。。。
您可以使用
apply
轻松地将任何字符串匹配函数应用于列元素。假设“SUBDIVISION”列的类型正确(字符串)
编辑:修复缺少的括号
检索所有startwith所需字符串的行
检索包含必需字符串的所有行
相关问题 更多 >
编程相关推荐