如何使用名称键将列中计算的值放入另一个数据框中?

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”列正确对齐到基于匹配值的峰值数据帧。