如何将数据集中一列的值添加到另一列?

问题描述 投票:0回答:1

我想将 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.")
python analytics
1个回答
0
投票

假设您的数据集根据您的问题陈述如下所示:

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
© www.soinside.com 2019 - 2024. All rights reserved.