python - 合并两个表

标签 python pandas oracle

我有两张表,一张表有 FROM_SERIAL、TO_SERIAL 和 TRANSACTION_DATE。另一个表有 SERIAL_NO 和 ACTIVATION_DATE。我想合并特定范围内的两个表。

示例:

第一张 table

   FROM_SERIAL        TO_SERIAL       TRANSACTION_DATE
   10003000100        10003000500     22-APR-19
   10003001100        10003001300     25-MAY-19
   10005002001        10005002500     30-AUG-19

第二张表

   SERIAL_NO        ACTIVATION_DATE
   10003000150      30-APR-19
   10005002300      01-OCT-19

期望表

   FROM_SERIAL        TO_SERIAL       SERIAL_NO       ACTIVATION_DATE
   10003000100        10003000500     10003000150      30-APR-19
   10005002001        10005002500     10005002300      01-OCT-19

我想合并上述场景中的两个表。

代码可以是 Oracle 也可以是 Python,没关系。

最佳答案

Pandas 解决方案:

df = df1.assign(a=1).merge(df2.assign(a=1), on='a', how='outer')

df = df[df['SERIAL_NO'].between(df['FROM_SERIAL'], df['TO_SERIAL'])]
df = df.drop(['a','TRANSACTION_DATE'], 1)
print (df)
   FROM_SERIAL    TO_SERIAL    SERIAL_NO ACTIVATION_DATE
0  10003000100  10003000500  10003000150       30-APR-19
5  10005002001  10005002500  10005002300       01-OCT-19

但是如果大数据更好是使用一些 oracle 解决方案。

关于python - 合并两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163276/

相关文章:

java - 从 Oracle ADF 中的 Java 代码中的 URL 获取参数

python - scikit learn 中不同数据类型的自定义管道

python - 从时间序列中提取 Pandas 中的每月分类(虚拟)变量

python-3.x - 从月平均数据帧到插值的每日时间序列

oracle - 使用SqlAlchemy和cx_Oracle将Pandas DataFrame写入Oracle数据库时,加快to_sql()的速度

sql - Oracle Rownum = 2 不返回结果

python - 我们如何打印 Python 文本文件中出现单词的行号?

python - 当整个文件太大时如何在python中使用mmap

python - -> 在 Python 函数定义中是什么意思?

python - 将两列串联成一轮 float