У меня есть два dataframes тех же размеров, которые выглядят как:Использование двух различных кадров данных для вычисления новой переменной
df1
ID flag
0 1
1 0
2 1
df2
ID flag
0 0
1 1
2 0
В обоих dataframes я хочу, чтобы создать новую переменную, которая обозначает флаг аддитивный. Таким образом, новая переменная будет выглядеть следующим образом:
df1
ID flag new_flag
0 1 1
1 0 1
2 1 1
df2
ID flag new_flag
0 0 1
1 1 1
2 0 1
Так что, если либо флаг столбцов является 1
новый флаг будет 1
. Я попробовал этот код:
df1['new_flag']= 1
df2['new_flag']= 1
df1['new_flag'][(df1['flag']==0)&(df1['flag']==0)]=0
df2['new_flag'][(df2['flag']==0)&(df2['flag']==0)]=0
Я бы ожидать такое же количество 1
в обоих new_flag
, но они отличаются. Это потому, что я не иду по строкам подряд? Как этот вопрос? pandas create new column based on values from other columns Если да, то как мне включить критерии из обоих данных?
Кроме того, что вы пытались в принципе должны работали, но это называется прикованными индексации, так что вы, возможно, работает на экземпляре, который является, почему он не работает, вы должны изменить to 'df1.loc [(df1 ['flag'] == 0) & (df1 ['flag'] == 0), 'new_flag'] = 0 df2.loc [(df2 ['flag'] == 0) & (df2 [ 'флаг'] == 0), 'New_flag'] = 0 ' – EdChum