1

Мне нужно сравнить столбцы со всеми другими столбцами в dataframe. Столбец, который я должен сравнивать с другими, находится в позиции 4, поэтому я пишу df.iloc [x, 4], чтобы получить значения столбца. Затем я должен рассмотреть эти значения, умножить их на значения в следующем столбце (например, df.iloc [x, 5]), создать новый столбец в фрейме данных и сохранить результаты. Затем я должен повторить эту процедуру до конца существующего столбца (исходный dataframe имеет 43 столбца, поэтому в конце это df.iloc [x, 43]) Как я могу это сделать в python? Если вы можете сделать несколько примеров? Я пытаюсь поместить свой код в сообщение, но мне не нравится мой новый телефон.Как сохранить результаты в разных столбцах в фрейме данных в python?

ответ

0

Я думаю, что вы можете использовать eq - сравнить фильтруется DataFrame с колонкой E в положении 4:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,8,9], 
        'G':[1,3,5], 
        'H':[5,3,6], 
        'I':[7,4,3]}) 

print (df) 
    A B C D E F G H I 
0 1 4 7 1 5 7 1 5 7 
1 2 5 8 3 3 8 3 3 4 
2 3 6 9 5 6 9 5 6 3 

print (df.iloc[:,5:].eq(df.iloc[:,4], axis=0)) 
     F  G  H  I 
0 False False True False 
1 False True True False 
2 False False True False 

Если нужно несколько по столбцам в положении 4 использование mul:

print (df.iloc[:,5:].mul(df.iloc[:,4], axis=0)) 
    F G H I 
0 35 5 25 35 
1 24 9 9 12 
2 54 30 36 18 

Или, если нужно несколько сдвинутыми колонками:

print (df.iloc[:,4:].mul(df.iloc[:,5:], axis=0, fill_value=1)) 
    E F G H I 
0 5.0 49 1 25 49 
1 3.0 64 9 9 16 
2 6.0 81 25 36 9 

 Смежные вопросы

  • Нет связанных вопросов^_^