Python 按单元中的元素进行切片
通过在单元格中查找单个元素进行切片的最佳方法是什么?我知道如何使用.isin()函数,其中单元格元素位于列表中。但我实际上在寻找相反的结果:Python 按单元中的元素进行切片,python,pandas,slice,Python,Pandas,Slice,通过在单元格中查找单个元素进行切片的最佳方法是什么?我知道如何使用.isin()函数,其中单元格元素位于列表中。但我实际上在寻找相反的结果: id vals 1 ['wow', 'very', 'such'] 2 ['wow', 'such'] 3 ['very', 'such'] 我想要这样的东西(但这个不行): 我认为另一种方法是使用apply(),匹配值,但这似乎有点不雅观。a列表理解选择只包含字符串的行,可以使用: df[['ver
id vals
1 ['wow', 'very', 'such']
2 ['wow', 'such']
3 ['very', 'such']
我想要这样的东西(但这个不行):
我认为另一种方法是使用apply(),匹配值,但这似乎有点不雅观。a
列表理解
选择只包含字符串的行,可以使用:
df[['very' in x for x in df['vals'].values]]
是否要匹配包含<代码>交付的字符串(其中<代码>非常是子字符串)?PS:根据OP编辑的注释,熊猫中不雅的地方可能是将列表对象存储在数据帧中。要考虑的一个选项是将列表拆分为列并与之一起工作。同时,申请并不是不雅观的。谢谢你的意见。如果可能的单词列表在10000s中会怎样?你有10000s列,那会有什么问题?我觉得用这样一个稀疏的表进行可视化解释会更困难。我不确定在10k水平列表和10k列水平标量之间进行可视化会有多困难。但这是一个平衡的选择:你没有标量意味着你阻止你的代码使用所有的pandas特性,因此你必须使用apply。
df[['very' in x for x in df['vals'].values]]
df[df.vals.apply(lambda x: 'very' in x)]
Out[9]:
vals
0 [wow, very, such]
2 [very, such]