SQL表与Datafram的条件连接

2024-05-17 18:44:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个应用程序,处理的一个步骤是将药品NDC的from claim数据与包含NDC以及各种其他信息(包括单价、多源代码等)的表连接起来。你知道吗

索赔数据表如下所示:

Member ID | Claim ID | Date Filled | NDC | Qty | Days Supply |

它被读入一个数据帧,如下所示:

import pandas as pd
claims = pd.read_excel(filepath)

药品定价信息的SQL表包含以下字段

| id | date | ndc | gpi | name | price | multisource_code |

所以我需要加入他们的国家数据中心。我曾尝试将SQL表作为数据帧读入,并将其与merge或join一起使用,以将它们组合在一起,但我无法确定如何设置适当的条件,以便它仅从SQL表中连接日期在数据帧中填充的日期之前的NDC。
我还尝试了merge\u asof,因为它似乎提供了正确的参数,设置如下:

claims['NDC'] = claims['NDC'].astype('int64')
drugs['NDC'] = drugs['ndc'].astype('int64')
drugs.drop(columns='ndc', inplace=True)
sorted_frame = claims.sort_values('NDC')
sorted_drugs = drugs.sort_values('NDC')
merged_table = pd.merge_asof(sorted_frame, sorted_drugs, on='NDC', left_by='Date Filled', right_by='DATE')

然而,它似乎只是返回南的正确帧。你知道吗

任何建议都将不胜感激。你知道吗


Tags: 数据信息idsqldatemergepdsorted
1条回答
网友
1楼 · 发布于 2024-05-17 18:44:56

嗨,答案是使用merge\u asof。它以前不起作用,因为我没有正确地铸造日期时间。依赖于infere\u datetime\u format参数导致了问题。你知道吗

最后的合并代码是:merged\u table=pd.合并(索赔,药物,日期,作者:'NDC')

相关问题 更多 >