合并 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 个数据帧而不更改关联值的主要内容,如果未能解决你的问题,请参考以下文章