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