Панды способы расчета

Я читаю файл с 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]
Другие вопросы по тегам