pandas - Pandas 转换:一对多关系到一对一
问题描述
我有一个熊猫数据框,这样
APP_ID SETTING_ID
0 7 [1009, 962, 430]
1 8 [103, 914, 890, 218]
我需要对其进行转换,SETTING_ID
以使列表中的每个都与APP_ID
APP_ID SETTING_ID
0 7 1009
1 7 962
2 8 103
3 8 914
4 8 890
解决方案
这就是所谓的unnest
pd.DataFrame({'APP_ID':df.APP_ID.repeat(df.SETTING_ID.str.len()),'SETTING_ID':sum(df.SETTING_ID.tolist(),[])})
Out[367]:
APP_ID SETTING_ID
0 7 1009
0 7 962
0 7 430
1 8 103
1 8 914
1 8 890
1 8 218
推荐阅读
- apache-flink - 连接到广播流后 Flink 窗口不触发
- reactjs - 如何禁用 PrimeReact ListBox 中的列表项之一?
- deep-learning - 将矩阵向量积计算从单个示例转换为小批量
- rest - 是否可以通过 API 更新 Google Place?
- angularjs - 从角度数组中获取值
- batch-file - 在网络上的用户的 cmd 提示符下以管理员身份远程运行 bat 文件
- sql - 空间查询子查询不起作用
- javascript - 我有一个渲染全屏切换按钮的高图,但无法弄清楚如何使用主题参数更改 svg 图标
- php - 用于记录 PHP 代码的官方 PHPDoc 参考
- java - Spring Boot - 如何检查特定应用程序 URL 的状态 200