Python Dataframe 合并问题

我有如下两个 Dataframe, 我想将两个dataframe 合并成如下样子,请问 Pandas 如何实现。

df1:

    name    id
0  Rose  N0002
1  Nimo  N0003

df2:

  code  
0  S1
1  S2
2  S3

df1 + df2 = :

    name    id      code
0  Rose  N0002    S1
1  Nimo  N0003    S1
2  Rose  N0002    S2
3  Nimo  N0003    S2
4  Rose  N0002    S3
5  Nimo  N0003    S3

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
可以使用 Pandas 中的 merge 函数来实现两个 DataFrame 的合并,具体操作如下:

import pandas as pd

# 创建 df1 和 df2
df1 = pd.DataFrame({'name': ['Rose', 'Nimo'], 'id': ['N0002', 'N0003']})
df2 = pd.DataFrame({'code': ['S1', 'S2', 'S3']})

# 将 df1 和 df2 按列合并
result = pd.merge(df1.assign(key=0), df2.assign(key=0), on='key').drop('key', axis=1)

# 输出合并后的结果
print(result)

运行结果如下:

    name     id code
0   Rose  N0002   S1
1   Rose  N0002   S2
2   Rose  N0002   S3
3   Nimo  N0003   S1
4   Nimo  N0003   S2
5   Nimo  N0003   S3

这里,我们首先使用 assign 函数为每个 DataFrame 添加一个 key 列,然后使用 merge 函数将两个 DataFrame 按照 key 列进行合并,最后再将 key 列删除即可得到结果。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

可用


import pandas as pd

df1 = pd.DataFrame({'name': ['Rose', 'Nimo'], 'id': ['N0002', 'N0003']})
df2 = pd.DataFrame({'code': ['S1', 'S2', 'S3']})

df1['key'] = 0
df2['key'] = 0

result = pd.merge(df1, df2, on='key').drop('key', axis=1)
print(result);

img