У меня есть два кадра данных df1
и df2
,
df1
A B
2 6
5 1
7 3
1 2
9 7
4 7
3 4
8 9
и df2
содержит
A B A_bin B_bin C D E
2 6 1 2 5 4 1
5 1 2 1 2 2 4
7 3 3 1 5 1 7
1 2 1 1 8 4 9
9 7 3 3 5 5 8
4 7 2 3 1 8 5
3 4 1 2 2 9 3
8 9 3 3 4 6 2
Я пытаюсь выбрать только те конкретные строки, которые выбраны из df2
для нового фрейма данных df_result_A
для всех строк, которые имеют A_bin = 1
аналогично, отдельный фрейм данных df_result_B
, имеющий все эти строки df2
, такие что B_bin
строк содержат 1.
Мне трудно поставить неверный синтаксис моей логики, или, возможно, моя логика неверна,
for i in range(len(df1(df2[columns])+len(df)):
if(row value is 1)
print in df_result_A
print in df_result_B
Поскольку задача состоит в том, чтобы не использовать имя столбца и индексирование, поскольку код должен выполняться и для другого набора данных Я пытаюсь сначала выполнить итерацию по первым двум столбцам df2, так как len(df1)
будет дайте мне знать, что после 2 столбцов A_bin
и B_bin
придут.
таким образом, когда я нахожусь в первом столбце df2, то добавление len(df1)
поставит меня на A_bin
и итерирует по нему, чтобы проверить значение равным 1 и сохранить его в отдельном кадре данных.
Точно так же, когда я нахожусь во 2-м столбце df2
, добавление len(df2)
поставит меня на B_bin
и, таким образом, сохранит его результат в df_result_B
.
ожидаемый результат в отдельном кадре данных.
df_result_A
A B C D E
2 6 5 4 1
1 2 8 4 9
3 4 2 9 3
df_result_b
A B C D E
5 1 2 2 4
7 3 5 1 7
1 2 8 4 9