Я уверен, что это должно быть прямо, но пытаясь решить эту проблему в течение нескольких дней, я думаю, что знаю, что я делаю неправильно, но одержим идеями:
Я использую функция для подмножества Dataframe и на основе подмножества создать новый столбец в этом подмножестве и заполнить его. Это работает, но если я не назначу это обратно новому фрейму данных с именем mod_df, я не смогу вернуть его в df
Похоже, что после завершения функции данные теряются.
Буду признателен за любые мысли
mod_df = []
def Pop_Gen(lower, upper, val):
x = df[(df['byear'] >= lower) & (df['byear'] <= upper)].assign(Gen = val)
mod_df.append(x)
for index, row in gen_Ref_df.iterrows():
Pop_Gen(row.lower,row.upper,row.val)
Ввод
1-й кадр данных:
df:
Name byear
0 John 1980
1 Mary 1990
2-й кадр данных:
gen_Ref_df:
val lower upper
0 old 1970 1985
1 new 1986 1995
Токовый выход
mod_df:
Name byear Gen
0 John 1980 old
1 Mary 1990 new
Ожидаемый выход (в df
без необходимости вставлять в mod_df
)
df:
Name byear Gen
0 John 1980 old
1 Mary 1990 new