python - 在 Python/Pandas 的列表类型列中查找匹配值
问题描述
所以我有一个函数,它根据数据框中的某个字符串是否包含列表中的值来设置数据框的列中的值。然后,我想计算数据框中有多少行具有该值,但出现错误。
如果满足某些条件,'tag' 列被设置为等于列表 ['date','must',glucose']。并非所有行都满足发生这种情况的条件。我想通过分析数据框来找到满足这一点的行数。
我试过这个:
df = data[data['tag'] == ['date','must','glucose']]
print(df)
...但这会产生:
ValueError: Lengths must match to compare
我也试过这个,但会产生同样的错误:
df = data.tag == ['date','must','glucose']
如果我只是比较值,那会起作用,但是在单元格中使用列表而不是值会炸毁它。就像值只是'四'并且我正在这样做,它不会给我一个错误:
df = data[data.tag=='four']
有没有办法做到这一点?谢谢!
解决方案
You can use apply function for it.
df = df[df['tag'].apply(lambda x : x == ['date','must','glucose'])]
您也可以将其转换为元组并进行比较
推荐阅读
- python-3.x - 合并 Python 字典并使用它们的键对其进行排序
- testing - 迷失在赛普拉斯的“内部()”中
- tfs - TFS 2019 - 测试用例被错误删除 - 我们如何重现它们
- kubernetes - Kubernetes:是否可以将消息从一个服务广播到另一个服务?
- swift - 无法推断复杂的闭包返回类型;添加显式类型以消除歧义?
- node.js - 什么是压缩 AWS Lambda 响应以避免 6MB 限制的好方法?
- c - 如何在c中为pthreads给出执行顺序?
- java - cast("decimal(32,9)") 正在将输入值 0 转换为科学值 0E-9
- java - rjava 使用中的不同错误
- internet-explorer-11 - IE11 两个音频标签只有一个工作