python - 使用多个键值连接两个不同的数据集

标签 python sql linux join multikey

我有两组数据。

第一个数据集如下所示:

Storm_ID,Cell_ID,Wind_speed
2,10236258,27
2,10236300,58
2,10236301,25
3,10240400,51

第二个数据集如下:

Storm_ID,Cell_ID,Storm_surge
2,10236299,0.27
2,10236300,0.27
2,10236301,0.35
2,10240400,0.35
2,10240401,0.81
4,10240402,0.11

现在我想要一个看起来像这样的输出:

Storm_ID,Cell_ID,Wind_speed,Storm_surge
2,10236258,27,0
2,10236299,0,0.27
2,10236300,58,0.27
2,10236301,25,0.35
2,10240400,0,0.35
2,10240401,0,0.81
3,10240400,51,0
4,10240402,0,0.11

我尝试在 Linux 中使用 join 命令来执行此任务,但失败得很厉害。 Join 命令跳过了数据库中不匹配的行。我可以使用 Matlab,但数据的大小超过 100 GB,这使得这项任务非常困难。 有人可以请指导我这一个请。我可以使用 SQL 或 python 来完成这个任务吗?感谢您的帮助。谢谢。

最佳答案

我想你想要一个全外连接:

select storm_id, cell_id,
       coalesce(d1.wind_speed, 0) as wind_speed,
       coalesce(d2.storm_surge, 0) as storm_surge
from dataset1 d1 full join
     dataset2 d2
     using (storm_id, cell_id);

关于python - 使用多个键值连接两个不同的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49567291/

相关文章:

linux - 在 Linux 中替代 mail 或 mutt 发送邮件?

Python:类中的子属性

python - Pandas 数据框替换列中的子字符串,给出意外的结果

sql - Azure 流分析 - 计算线性回归

c - 为什么我的 C 套接字文件传输(服务器/客户端)程序只能正确运行一次?

arrays - 使用 Bash 查找数组中的多个重复项及其索引?

python - 从用 Node.js 编写的 AWS Lambda 函数调用 Python boto3 库

python - BeautifulSoup 找不到标签

php - 访问数组 PHP 中的一行

sql - SSIS 不识别索引?