Как напечатать одну сущность из таблицы, используя Pandas - PullRequest
0 голосов
/ 27 апреля 2018
             Open     High     Low   Close  Shifted_Close  Movements  Sign
Date                                                                   
2018-04-21  8875.1  9075.0  8629.3  8944.6         8875.0       69.6   Positive
2018-04-22  8939.7  9072.0  8760.5  8811.8         8944.6     -132.8   Negative
2018-04-23  8796.3  9032.1  8784.9  8954.1         8811.8      142.3   Positive
2018-04-24  8959.0  9749.0  8947.0  9661.7         8954.1      707.6   Positive
2018-04-25  9661.7  9750.0  8767.0  8974.5         9661.7     -687.2   Negative

Это таблица, которую я взял с помощью панды. Мне интересно, как сделать простую функцию if для знака последней записи "2018-04-25".

Это было бы что-то вроде:

if btc_usd_price_kraken['Sign'] == 'Negative':
      print("Buy coins now")

Но я хочу только одну запись.

Спасибо

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Я думаю, что вы хотите что-то вроде этого, если он всегда сортирует фрейм данных так, что последнее значение является нижней записью:

df.iloc[-1, df.columns.get_loc('Sign')]

Выход:

'Negative'

Если нет, вы можете:

df.sort_index().iloc[-1, df.columns.get_loc('Sign')]
0 голосов
/ 27 апреля 2018

Предполагая, что имя вашего фрейма данных df.

Во-первых, обратите внимание, что вы получите самую последнюю дату с:

df.index.max()

Просто используйте это, чтобы получить соответствующее значение Sign, используя .loc:

df.loc[df.index.max(), 'Sign']

Возвращает значение Sign для даты 2018-04-25, то есть то, что вы ищете для выполнения условия if:

if df.loc[df.index.max(), 'Sign'] == 'Negative':
    print("Buy coins now")
0 голосов
/ 27 апреля 2018

Вы можете получить доступ ко всем записям с помощью Signin = 'negative' с помощью:

df.loc[df['Sign']=='Negative']

Выход:

    Open    High    Low Close   Shifted_Close   Movements   Sign
Date                            
2018-04-22  8939.7  9072.0  8760.5  8811.8  8944.6  -132.8  Negative
2018-04-25  9661.7  9750.0  8767.0  8974.5  9661.7  -687.2  Negative

Вы можете получить доступ к последней записи с условием, как показано ниже:

df.loc[df['Sign']=='Negative'].iloc[-1]

Выход:

Open               9661.7
High                 9750
Low                  8767
Close              8974.5
Shifted_Close      9661.7
Movements          -687.2
Sign             Negative
Name: 2018-04-25, dtype: object

Используйте условие if, чтобы проверить последнее значение Sign:

if df.iloc[-1]['Sign'] == 'Negative':
    print("processing")
    # block to process
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...