合并 2 个数据帧而不更改关联值

Posted

技术标签:

【中文标题】合并 2 个数据帧而不更改关联值【英文标题】:Merging 2 data frames without changing associated values 【发布时间】:2018-05-06 22:04:36 【问题描述】:

我目前有 2 个数据集 1 = 每家医院的处方药 2 = 犯罪

我已经能够将定位的医院 ID 分配给各种犯罪,因此我可以确定哪个医院更靠近。

我真正想做的是将使用 count_values 方法开出的药物数量分配给犯罪数据中的医院 ID,这样我就可以绘制犯罪发生地点和总数量的散点矩阵从最近的医院开的药。

我尝试过使用以下

df = Crimes.merge(hosp[['hosp no', 'Total Quantity']], 
left_on='hosp_no', right_on='hosp no').drop('hosp no', 1)
df

但是,当我使用上面的代码时,与犯罪相关的医院 ID 会发生变化,我也不想要它!!

我是 jupyter notebook 的新手,所以我将非常感谢任何帮助! 提前谢谢你

犯罪 df

ID    Type         Hosp No    
 0   Anti-Social     222

医院 df

Hosp no     Total Quantity   Drug name
222         1000         Paracetamol  

所以基本上 Hosp 222 已经开了 1000 种扑热息痛药物,我如何将数字 1000 分配给犯罪 df,其中 Hosp No = 222 如下所示: 犯罪df

ID    Type         Hosp No  Total Quantity  
 0   Anti-Social     222       1000

【问题讨论】:

如果没有一些代码,很难想象你的问题。请发布示例数据框 @Vaishali 我已经更新了我的答案,希望对您有所帮助 Hosp df 上没有 hosp no,处方药总量是多少? @Vaishali 抱歉 - 希望对您有所帮助? 【参考方案1】:

如果要合并的列名称相同,则不需要 on 参数。由于您需要将列添加到犯罪中,我们可以使用参数 how = left

Crimes = Crimes.merge(Hosp[['Hosp No', 'Total Quantity']], how = 'left')

    ID  Type        Hosp No Total Quantity
0   0   Anti-Social 222     1000

让我知道这是所需的输出还是您需​​要其他任何东西

【讨论】:

这似乎不起作用。它没有改变犯罪数据集

以上是关于合并 2 个数据帧而不更改关联值的主要内容,如果未能解决你的问题,请参考以下文章

动作脚本 3. 继续动画直到最后一帧而不中断

获取 GIF 图像的第一帧而不下载所有其他帧

通过迁移更改表结构而不丢失数据?

如何在 jQuery 中将 2 个数组合并为 1 个数组? [复制]

Python合并两个具有不同日期时间的数据框[重复]

R合并具有相同列的两个数据框而不替换值[重复]