Я играл с фондовыми данными, и я пытаюсь фильтровать группы, которые имеют больше покупать, чем продавать с соответствующим до Transaction
значенийПопытки запросить определенные группы, которые удовлетворяют условие value_count
Таким образом, код I бег, чтобы отобразить ниже данные является
df.groupby('Stock').Transaction.value_counts()
данные
Stock Transaction
ADC Buy 2
AKAM Option Exercise 51
Sale 34
Buy 9
AMNB Buy 10
ARCC Buy 15
ARL Buy 12
ASA Buy 7
ASRV Buy 12
Option Exercise 1
AUBN Buy 4
Sale 11
BAC Option Exercise 23
Buy 15
Sale 7
BCBP Buy 3
Sale 11
BKSC Buy 55
BMRA Buy 5
Option Exercise 3
Sale 1
..
Я группируя данные по их тикерам, а затем, глядя на их соответствующих colu mn Transaction
. Я пытаюсь отфильтровать группы, чьи транзакции value_counts имеют больше Buy
, чем Sale
.
Не могу понять, как это сделать.
Я пытался что-то вроде этого:
df.groupby('Stock').filter(lambda x: x.Transaction.value_counts().Buy > x.value_counts().Sale)
, который странно не работает, несмотря на это работа:
df.Transaction.value_counts().Buy
>>>2674
Я также попытался вещи вдоль линий
df.groupby('Stock').Transaction.filter(lambda x: x if x.value_counts().Buy > x.value_counts().Sale)
Но я не могу придумать, какие инструменты pandas идеальны в этом случае.
Выход может быть что угодно от только имени запасов, которые удовлетворяют это условие для распечатки всей группы (акции имени и сделки)
Так что выход будет что-то вроде этого
ADC Buy 2
AMNB Buy 10
ARCC Buy 15
ARL Buy 12
ASA Buy 7
ASRV Buy 12
Option Exercise 1
BAC Option Exercise 23
Buy 15
Sale 7
BKSC Buy 55
BMRA Buy 5
Option Exercise 3
Sale 1
Или просто названия акций.
Спасибо.
Изумительный. Я знал, что нужно простое решение. Спасибо! – Moondra