python - 从一列的每个单元格到另一个单元格的数据框一对多
问题描述
一个简单的 2 列数据框,我希望每列中的内容相互合并(或并排列出)。例如:
似乎有一个简单的方法,但我无法回忆和检索它。我尝试了“爆炸”和“融化”,但它们不起作用。
import pandas as pd
data = {'name': ["David","Mike","Kate"],
'info' : ["Department","Titile","Gender"]}
df = pd.DataFrame(data)
df = df.explode('name')
print (df)
我还可以尝试什么?
解决方案
使用numpy repeat和numpy 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
推荐阅读
- angularjs - 如何使 nv-file-select 上传器需要 Angular
- webpack - Webpack + Handlebars 自定义助手 - 不支持 require.extension
- sql - 如何制作“像任何“%element_in_array%”一样的字符串
- php - Apache,PHP7 错误:找不到脚本或无法统计
- angular - 如何实现 Facebook 的“最近登录”功能
- laravel - CSS 文件未使用 Google App Engine 和运行时 php72 加载到 PHP Laravel 应用程序中
- python - 如何训练神经网络为每个输入预测一组标签?
- java - 如何自定义 ArrangeAll 动作还是自己编写更好
- java - 面对无法延迟初始化集合并且无法初始化代理 - 没有会话
- ionic-framework - 如何将数据从 ionic 应用程序注入到 ionic webview 控制器