我有一个DataFrame,它在每个列中包含一堆条目.然而,这些条目只是数字列表的字符串(不是正确的列表,正如python定义的那样),如下所示:
data = {'name1': ['1456, 1324, 4782', '5428'],
'name2': ['7832, 1477, 8092', ''],
'name3': ['9496', '7842, 8326'],
'name4': ['5532, 1886', '7732, 6512, 9044']}
理想情况下,代码的最终结果将是确定哪些列包含某个数字,因此如果我要查找1477,它将为Column name2返回True,或者返回包含该数字的列标签列表(因此仅为name2),这两种输出都是可行的.
由于数据是这样组织的,我不能寻找完全相等的数据,所以我不能使用.isin
或==
.另一个问题是我不知道它在数据框中的什么位置,所以我也不能指定某个列或索引来转换为序列并查看.我try 过使用.loc
、.contains
或.filter
的方法,但失败了,因为当您可以搜索要使用的特定列或索引时,它们似乎工作得最好.我得到的最接近的建议是使用this post人的建议.这样做的问题在于,它查找的是与带有‘==’的字符串完全匹配的内容,并且查找的是索引,而不是列.最后要注意的是,我的实际DataFrame包含的条目比本例多得多,所以如果可能的话,我不希望使用for
个循环来迭代每一行和每一列,但从技术上讲,如果绝对必要的话,这将是可行的.
我承认,除了我读过的帖子和博客之外,我对Pandas 的了解非常有限,所以也许我只是忽略了一些简单的东西?希望有人能给出一个比暴力循环更有效的答案.