如何使用名称键将列中计算的值放入另一个数据框中?
How do I put values calculated in column into another dataframe using name key?
快速背景调查:我正在处理一个周五到期的 uni 项目,并且正在处理三个关于登山探险的数据集。一个名为 peaks
并包含有关山峰的信息。另一个名为 expeditions
并提供有关在这些山峰上进行的各种旅行的信息。
它们都有共同的列 peak_name
(str)。
在expeditions
中,我这样计算每个峰的成功率:
exped_peak=expeditions.groupby('peak_name').mean()
peak_success=exped_peak['success']
peak_success
Success
是一个用布尔值填充的列,显示探险是成功还是失败。
输出是这样的:
我想在 peaks
中创建一个列来给出每个峰的成功率。
我这样做了: peaks['success_rate']=peaks_success
,但我的新专栏充满了 NaN 值。我怎样才能正确?
我认为它可能与列 'peak_name' 有关,但我从来没有像那样链接过两个数据框,所以这让我有点困惑。
谁能告诉我如何让它工作?
谢谢!
您需要 merge peak_success 数据帧和基于“peak_name”列的 peaks 数据帧,并将其分配回 peaks 数据帧。
peaks = peaks.merge(peak_success, how='left', on='peak_name')
这类似于 SQL 中的左连接,其中 merge() 查看每个数据框中的“peak_name”列并将“success_rate”列正确对齐到基于匹配值的峰值数据帧。
快速背景调查:我正在处理一个周五到期的 uni 项目,并且正在处理三个关于登山探险的数据集。一个名为 peaks
并包含有关山峰的信息。另一个名为 expeditions
并提供有关在这些山峰上进行的各种旅行的信息。
它们都有共同的列 peak_name
(str)。
在expeditions
中,我这样计算每个峰的成功率:
exped_peak=expeditions.groupby('peak_name').mean()
peak_success=exped_peak['success']
peak_success
Success
是一个用布尔值填充的列,显示探险是成功还是失败。
输出是这样的:
我想在 peaks
中创建一个列来给出每个峰的成功率。
我这样做了: peaks['success_rate']=peaks_success
,但我的新专栏充满了 NaN 值。我怎样才能正确?
我认为它可能与列 'peak_name' 有关,但我从来没有像那样链接过两个数据框,所以这让我有点困惑。 谁能告诉我如何让它工作?
谢谢!
您需要 merge peak_success 数据帧和基于“peak_name”列的 peaks 数据帧,并将其分配回 peaks 数据帧。
peaks = peaks.merge(peak_success, how='left', on='peak_name')
这类似于 SQL 中的左连接,其中 merge() 查看每个数据框中的“peak_name”列并将“success_rate”列正确对齐到基于匹配值的峰值数据帧。