2016-06-23 3 views
1

Предположим, у меня есть панд dataframe даетсяпанды DataFrame - найти максимальное между смещенными столбцов

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.randn(5,2)) 
df 

    0   1 
0 0.264053 -1.225456 
1 0.805492 -1.072943 
2 0.142433 -0.469905 
3 0.758322 0.804881 
4 -0.281493 0.602433 

Я хочу, чтобы вернуть объект серии с 4-мя рядами, содержащая max(df[0,0], df[1,1]), max(df[1,0], df[2,1]), max(df[2,0], df[3,1]), max(df[3,0], df[4,1]). В более общем плане, какой лучший способ сравнить максимальный столбец 0 и столбец 1 смещен n строк?

Спасибо.

ответ

1

Вы хотите применить max к строкам после смещения первого столбца.

pd.concat([df.iloc[:, 0].shift(), df.iloc[:, 1]], axis=1).apply(max, axis=1).dropna() 
+0

Я надеялся, что будет специальная функция, чтобы справиться с этим ... pandas никогда не разочарует! – user3294195

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