为什么pandas数据帧中浮点值的这种串联是否给出了NaN输出?

时间:2017-03-13 02:35:33

标签: python pandas floating-point concatenation

我有一堆带有浮点值的pandas数据帧。我想用pandas连接它们。

df1 = 

                                 hapX_Sp_Sum
  contig pos      F1_2ms04h_PI             
0  2      16229767 726                   3.5
1  2      16229783 726                   3.5
2  2      16229880 726                   2.0
3  2      16229891 726                   2.0
4  2      16229982 726                   0.0
5  2      16229992 726                   0.0

df2 =

                                     hapX_My_Sum
  contig pos      F1_2ms04h_PI             
0  2      16229767 726                   0.0
1  2      16229783 726                   0.0
2  2      16229880 726                   0.0
3  2      16229891 726                   0.0
4  2      16229982 726                   0.0
5  2      16229992 726                   0.0

我将它们连接为:

frames = [df1, df2]
merged_df = pd.concat(frames, axis = 1)

我得到的输出:

                                     hapX_My_Sum  hapX_Sp_Sum
  contig pos      F1_2ms04h_PI                          
0  2      16229767 726                   0.0          NaN
1  2      16229783 726                   0.0          NaN
2  2      16229880 726                   0.0          NaN
3  2      16229891 726                   0.0          NaN
4  2      16229982 726                   0.0          NaN
5  2      16229992 726                   0.0          NaN

每列中的值都是浮点数,但为什么我遇到这个NaN问题呢?我使用浮点值的pd.sum()生成了这些数据帧,这应该导致列中的每个值都是浮点数。这很奇怪,任何想法?

谢谢,

1 个答案:

答案 0 :(得分:1)

这对我来说很正常,因为你沿着行连接起来。所以是的,hapX_Sp_Sum在第一个数据帧中当然是空的。如果你打印更多行,你会发现非空值(这次是其他列的NaN)

我怀疑你真正想做的是

merged_df = pd.concat(frames, axis = 0)