我想将 BMI 值从一个数据集添加到 ID 列上的另一个数据集。怎么办? ID 列的值在原始数据集中重复多次。我想要每个唯一的 ID 值,其对应的 BMI
for i in range(1, 37):
if i in sorted_df_work['ID'].values and i in df_work_2['ID'].values:
bmi_value = sorted_df_work.loc[sorted_df_work['ID'] == i, 'Body_mass_index'].values[0]
df_work_2.loc[df_work_2['ID'] == i, 'BMI'] = bmi_value
else:
print(f"ID {i} not found in one of the DataFrames.")
假设您的数据集根据您的问题陈述如下所示:
sorted_df_work = pd.DataFrame({
'ID': [1, 2, 3],
'Body_mass_index': [22.0, 25.5, 30.1]
})
df_work_2 = pd.DataFrame({
'ID': [1, 1, 1, 2, 2, 3],
'some_other_column': [10, 20, 30, 40, 50, 60]
})
您可以使用 pd.merge 函数来获得所需的输出:
merged_df = pd.merge(df_work_2, sorted_df_work, on='ID', how='left')
并将 Body_mass_index 列重命名为 BMI:
merged_df.rename(columns={'Body_mass_index': 'BMI'}, inplace=True)
这是最终输出:
ID some_other_column BMI
0 1 10 22.0
1 1 20 22.0
2 1 30 22.0
3 2 40 25.5
4 2 50 25.5
5 3 60 30.1