我有4个数据框,其中有一个类别列。
d1:
ID d1c
002 [0, 25)
004 [25, 50)
d2:
ID d2c
002 [0, 25)
005 [0, 25)
d3:
ID d3c
004 [25, 50)
005 [0, 25)
ID d4c
002 [25, 50)
004 [75, 100)
d1['d1c'].value_counts()
[25, 50) 1
[0, 25) 1
Name: d1c, dtype: int64
d1.dtypes
ID object
d1c category
dtype: object
我必须通过外部联接合并数据帧。因此,我将这些数据帧合并如下:
ds=[d1,d2,d3,d4]
ds_final=reduce(lambda left,right: pd.merge(left,right,on='ID',how='outer'),ds)
但是结果产生了预期的结果,但是分类列显示了不同的格式,它显示了浮点类型而不是整数。
ID d1c d2c d3c d4c
002 [0.0, 25.0) [0.0, 25.0) NaN [25.0, 50.0)
004 [25.0, 50.0) NaN [25.0, 50.0) [75.0, 100.0)
005 NaN [0.0, 25.0) [0.0, 25.0) NaN
但是当我计算一列的唯一值时,它会将数据类型显示为int64,并且分类值的显示不精确。
ds_f['d1c'].value_counts()
[25, 50) 1
[0, 25) 1
[75, 100) 0
Name: d1c, dtype: int64
ds_f.dtypes
ID object
d1c category
d2c category
d3c category
d4c category
dtype: object
为什么合并数据框后更改了显示格式?我想要[0,25)格式。