我试图根据两列中的值对pandas数据帧进行排序。出于某些原因,它将整数视为字符串,而之前的一些代码中这些值仍然是整数。不确定是什么导致了这些变化,但无论如何:
df =
contig pos ref haplotype_block hap_X hap_Y odds_ratio My_hap Sp_hap
2 5207 T 1856 T A 167.922 T A
2 5238 G 1856 C G - C G
2 5723 A 1856 A T - A T
2 5867 C 1856 T C - T C
2 155667 G 2816 G * 1.0 N N
2 155670 T 2816 T * - N N
2 67910 C 2 C T 0.21600000000000003 T C
2 67941 A 2 A T - T A
2 68016 A 2 A G - G A
2 118146 C 132 T C 1369.0 T C
2 118237 A 132 C A - C A
2 118938 A 1157 T A 0.002 A T
df.sort_values(by=['contig', 'pos'], inplace=True, ascending=False)
print(df) #is giving me
contig pos ref haplotype_block hap_X hap_Y odds_ratio My_hap Sp_hap
2 118146 C 132 T C 1369.0 T C
2 118237 A 132 C A - C A
2 118938 A 1157 T A 0.002 A T
2 155667 G 2816 G * 1.0 N N
2 155670 T 2816 T * - N N
2 5207 T 1856 T A 167.922 T A
2 5238 G 1856 C G - C G
2 5723 A 1856 A T - A T
2 5867 C 1856 T C - T C
......
因此,它只使用两列的第一位数(contig and pos)
对数据进行排序。为什么会这样?还有一个非常简单有效的解决方法?在
谢谢
编辑后详细信息:
^{pr2}$
将值转换为整数:
然后按
^{pr2}$inplace
排序谢谢
相关问题 更多 >
编程相关推荐