Панды способы расчета
Я читаю файл с pandas_read
и результат:
TotIrr DiffIrr Temp WindSpeed
0 3.2 2.5 19.67 0.34
1 1.8 0.0 19.67 0.35
2 2.5 1.4 19.67 0.31
3 3.7 2.5 19.67 0.30
4 3.2 2.5 19.67 0.32
Простой способ вычисления столбцов:
df['WS * 2'] = df['WindSpeed'] * 2
Выход:
TotIrr DiffIrr Temp WindSpeed WS * 2
0 3.2 2.5 19.67 0.34 0.68
1 1.8 0.0 19.67 0.35 0.70
2 2.5 1.4 19.67 0.31 0.62
3 3.7 2.5 19.67 0.30 0.60
4 3.2 2.5 19.67 0.32 0.64
Как я могу рассчитать сказать WindSpeed_index_4
с Temp_index_2
? Есть ли простой способ?
2 ответа
Решение
Кто-то уже упоминал этот метод в комментариях, но чтобы сделать его более понятным, вы можете использовать:
df['Fourth WindSpeed'] = df['WindSpeed'].shift(-4)
df['Second Temp'] = df['Temp'].shift(-2)
df['Third Value'] = df['Forth WindSpeed'] * df['Second Temp']
Это была бы общая идея для достижения того, что вам нужно в пандах. Обратите внимание, что столбец "Третье значение" будет следовать исходному индексу df. Если вам нужно, чтобы он соответствовал другому индексу, вы можете использовать:
df['Shift Third Value'] = df['Third Value'].shift(x) # x is an integer
Получив технику для достижения того, что вам нужно, вы обычно можете сжать операторы, чтобы сделать ее более эффективной:
df['Third Value'] = df['WindSpeed'].shift(-4) * df['Temp'].shift(-2)
Ты можешь использовать iloc
:
df['WindSpeed'].iloc[4] * df['Temp'].iloc[2]