首页 > 解决方案 > 从一列的每个单元格到另一个单元格的数据框一对多

问题描述

一个简单的 2 列数据框,我希望每列中的内容相互合并(或并排列出)。例如:

在此处输入图像描述

似乎有一个简单的方法,但我无法回忆和检索它。我尝试了“爆炸”和“融化”,但它们不起作用。

import pandas as pd

data = {'name': ["David","Mike","Kate"], 
'info' : ["Department","Titile","Gender"]}

df = pd.DataFrame(data)

df = df.explode('name')
print (df)

我还可以尝试什么?

标签: pythonpandasdataframe

解决方案


使用numpy repeatnumpy tile构建您的系列并使用pandas concat重新组合:

name = pd.Series(np.repeat(df.name.array, len(df)), name="name")
info = pd.Series(np.tile(df["info"].array, len(df)), name="info")
result = pd.concat([name, info], axis="columns")
result


     name   info
0   David   Department
1   David   Title
2   David   Gender
3   Mike    Department
4   Mike    Title
5   Mike    Gender
6   Kate    Department
7   Kate    Title
8   Kate    Gender

推荐阅读