У меня есть кадр данных, содержащий 5 столбцов. Что я хотел бы сделать, так это изменить последние 4 столбца на первый столбец.
В основном, если значение первого столбца ниже определенного порога, следующие столбцы изменяются, а если это значение выше порога, изменений не происходит.
Итак, я попробовал это:
import pandas as pd
df = pd.DataFrame({
'col1' : [0.1, 0.3, 0.1, 0.2],
'col2' : [2,4,3,7],
'col3' : [3,4,4,9],
'col4' : [4,2,2,6],
'col5' : [0.3, 2.1, 1.0, .9],
})
def motif(col1, col2, col3, col4, col5):
col2 = col2
col3 = col3
col4 = col4
col5 = col5
if col1 <=.15:
col2 = col2 * .15
col3 = col3 * .15
col4 = col4 * .15
col5 = col5 * .15
return col2, col3, col4, col5
else:
return col2, col3, col4, col5
df.apply(lambda x: modify(x[col1], x[col2], x[col3], x[col4], x[col5]), axis=1)
Но это не работает. Если есть идеи буду очень признателен