我有一个数据帧,其中每列都包含ID号;如下所示:
LC3B.low LC3B.hi P62.low P62.hi
PT 65 PT 172 PT 86 PT 135
PT 86 PT 65 PT 38 PT 56
PT 251 PT 251 PT 217 PT 261
我想列出在两列或更多列中看到的id。因此,对于所提供的值,熊猫会指出:
我不熟悉熊猫,也习惯了Perl。在Perl中,我会通过创建每个列的数组和散列来解决这个问题,然后使用print语句将每个数组的每个元素与每个散列进行比较和匹配,这样我的输出如下所示:
^{pr2}$但这产生了一个混乱的输出,只是觉得这不是解决问题的最有效方法。熊猫肯定有一种天生的做这种事情的方式吗?在
更新:我一直在尝试学习使用SQL命令来完成这个任务,但是pandasql无法识别我的列名。所以基本上:
print pysqldf("SELECT * FROM df;")
打印表格但是
print pysqldf("SELECT ATG12.low FROM df;")
打印“无”
我绝对不会致力于在Pandas中使用SQL来解决这个问题。我们将非常感谢您对如何列出显示在多个列中的所有ID值的任何建议或建议
这里有一个解决方案,希望对大型数据集运行得更快一些,因为它没有实现for循环:
这相当难看,但它输出的数据帧将提供您可能要查找的所有内容。在
results_df
中的每一行给出了行索引在原始数据帧的给定列中出现的频率。在(感谢this answer为
unique_vals
行提供了服务。)相关问题 更多 >
编程相关推荐