concat连接两个DataFrame为什么原先的整数数据变成了小数?

在Pandas中,为什么我在使用.concat()横向连接两个DataFrame的时候,原先的整数数据变成了小数了,如下图所示:

代码如下:
df_1 = pd.DataFrame({
‘x’:[1,2],
‘y’:[5,6],
},index=[‘a’,’b’])
df_1

df_2 = pd.DataFrame({
‘a’:[3,4],
‘b’:[7,8],
},index=[‘b’,’c’])
df_2

pd.concat([df_1, df_2], axis=1)

望大佬赐教!

Jason990420
最佳答案

NaN 属于 dtype=float,该列中的所有其他值都会自动向上转换为 float。

convert_dtypes

转换 DataFrame 以使用最佳的数据类型。

import pandas as pd

df_1 = pd.DataFrame({'x':[1, 2], 'y':[5, 6]}, index=['a', 'b'])
df_2 = pd.DataFrame({'a':[3, 4], 'b':[7, 8]}, index=['b', 'c'])

df_3 = pd.concat([df_1.convert_dtypes(), df_2.convert_dtypes()], axis=1)
>>> df_3
      x     y     a     b
a     1     5  <NA>  <NA>
b     2     6     3     7
c  <NA>  <NA>     4     8
8个月前 评论
python-xiaobai (楼主) 8个月前
讨论数量: 2
Jason990420

NaN 属于 dtype=float,该列中的所有其他值都会自动向上转换为 float。

convert_dtypes

转换 DataFrame 以使用最佳的数据类型。

import pandas as pd

df_1 = pd.DataFrame({'x':[1, 2], 'y':[5, 6]}, index=['a', 'b'])
df_2 = pd.DataFrame({'a':[3, 4], 'b':[7, 8]}, index=['b', 'c'])

df_3 = pd.concat([df_1.convert_dtypes(), df_2.convert_dtypes()], axis=1)
>>> df_3
      x     y     a     b
a     1     5  <NA>  <NA>
b     2     6     3     7
c  <NA>  <NA>     4     8
8个月前 评论
python-xiaobai (楼主) 8个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!