Мин с использованием правильного индексации Python - PullRequest
0 голосов
/ 07 мая 2018

Я новичок в Python. Я застрял на этой простой задаче довольно долго, но, похоже, не могу найти ответ.

enter image description here

У меня есть pandas фрейм данных, все, что я пытаюсь сделать, это взять минимум два столбца, но там, где один столбец отстает

enter code x = {'A': pd.Series([1,3,6,5,3,2]),
'B': pd.Series([4,2,8,4,4,2])}                                               
 x1 = pd.DataFrame(x)
x1.rolling(2).apply(lambda x: np.min(x['A'].iloc[1],x['B'].iloc[0],axis=1))

Это дает мне ошибку:

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices 

Если код работает, ответ должен быть

c = [NaN,3,2,5,3,2]

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Это то, что вам нужно?

np.minimum(x1.A.values,x1.B.shift().values)
Out[603]: array([nan,  3.,  2.,  5.,  3.,  2.])
0 голосов
/ 07 мая 2018

вам нужно сдвинуть значения кадра данных перед вызовом min

df = pd.DataFrame({'A': [1,3,6,5,3,2],
'B': [4,2,8,4,4,2]}) 
df.B= df.B.shift(+1)
df.min(axis=1, skipna=False)

что должно сделать трюк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...