pandas 比较不同数据类型的两个 Dataframe

afdcj2ne  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(197)

我想比较两个不同长度和不同数据类型的 Dataframe 。
df 1 ['num']的类型为'Object',列'num'包含整数和字符串对象。
| 努姆|
| - ------|
| 小行星100899|
| 小行星1980|
| 编号AB 347980|
| RT198090|
df 2 ['num']的类型为'float'
| 努姆|
| - ------|
| 小行星100899.0|
| 小行星1980 903|
| 小行星937974938.0|
| 小行星2837982|
到目前为止,这是我所尝试的;
1.将df 2转换为整数,然后使用pd.concat()将其与df 1进行比较2.将df 2转换为对象,然后使用pd.merge.将其与df 1进行比较。当我尝试此方法时,数字不匹配,因为一个是对象数据类型中的float类型,另一个是integer类型。

ca1c2owp

ca1c2owp1#

以下是一个选项:
如果您确定整列都是数字值而不是字符串,则可以执行以下操作:

df['num'] = df['num'].map('{:.0f}'.format)

如果它们都是数字值,并且具有一些NaN值,则可以执行以下操作:

df['num'] = df['num'].map('{:.0f}'.format,na_action = 'ignore')

如果你有字符串,那么它会出错。如果是这种情况,一个选项是使用pd.to_numeric()

df['num'] = pd.to_numeric(df['num'],errors = 'coerce').map('{:.0f}'.format,na_action = 'ignore').fillna(df['num'])

相关问题