pandas 拼接两个dataframe , 但是两列的数据格式不同,一个是int 一个是str
时间: 2024-02-17 14:01:01 浏览: 28
如果要拼接两个 DataFrame,但是两个 DataFrame 中某些列的数据类型不同,可以使用 Pandas 中的 astype() 函数将数据类型转换为相同的类型,然后再进行拼接。
例如,假设有两个 DataFrame,df1 和 df2,其中 df1 的某一列的数据类型是 int,而 df2 的相应列的数据类型是 str。想要将这两个 DataFrame 拼接在一起,可以按照以下步骤进行:
```
import pandas as pd
# 创建 DataFrame df1
df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# 创建 DataFrame df2
df2 = pd.DataFrame({'col1': ['1', '2', '3'], 'col2': ['7', '8', '9']})
# 将 df1 中的 col1 列转换为 str 类型
df1['col1'] = df1['col1'].astype(str)
# 将 df2 中的 col1 列转换为 int 类型
df2['col1'] = df2['col1'].astype(int)
# 拼接 df1 和 df2
df = pd.concat([df1, df2])
```
在这个例子中,我们首先创建了两个 DataFrame,df1 和 df2。然后,我们将 df1 中的 col1 列转换为 str 类型,将 df2 中的 col1 列转换为 int 类型。最后,我们使用 concat() 函数将 df1 和 df2 拼接在一起,生成一个新的 DataFrame df。
需要注意的是,如果两个 DataFrame 中某些列的数据类型不同,拼接后生成的新 DataFrame 中这些列的数据类型会被自动转换为通用类型。在上面的例子中,由于 col1 列的数据类型不同,拼接后生成的 df 中 col1 列的数据类型被自动转换为 object 类型。如果需要将其转换为其他类型,可以使用 astype() 函数进行转换。