Pandas在排序时把整数值当作字符串处理?为什么?

2024-09-29 19:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据两列中的值对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}$

Tags: 数据posrefpandasdf排序my整数

热门问题