Вы можете использовать loc
( документы ) для установки столбцов на основе условий, размещенных в строках. Пример ниже:
#Setup
import pandas as pd
dataset_1 = {
'Sample': [3, 8, 9],
'Age': [31, 45, 44],
'Tumor': ['Benign', 'Malignant', 'Malignant'],
'Location': ['Lung', 'Heart', 'Heart']
}
dataset_2 = {
'Sample': [3, 8, 9],
'Age': [None, None, None],
'Tumor': [None, None, None],
'Location': [None, None, None]
}
df_1 = pd.DataFrame(dataset_1)
df_2 = pd.DataFrame(dataset_2)
print(df_1)
print(df_2)
Какие выходы:
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant
Age Location Sample Tumor
0 None None 3 None
1 None None 8 None
2 None None 9 None
Вот как использовать loc
, чтобы установить столбцы равными, где строки одного столбца равны строкам другого.
В этом случае сравниваемые столбцы - это столбцы Sample
двух фреймов данных:
df_2.loc[df_2.Sample == df_1.Sample, :] = df_1
print(df_1)
print(df_2)
Что дает нам:
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant
Age Location Sample Tumor
0 31 Lung 3 Benign
1 45 Heart 8 Malignant
2 44 Heart 9 Malignant
Надеюсь, это то, что вы ищете. Удачи!