как я могу отфильтровать фрейм данных по некоторым критериям, а затем сохранить .csv? - PullRequest
0 голосов
/ 27 мая 2020

Привет, ребята, я начал работать с ноутбуком jupyter несколько дней go.

Мне нужна помощь, у меня есть фреймворк от panda. что-то вроде этого

Date    Stock   Company   Volume

01/02    APPL3   Apple     1.000.000

01/02    YUSS    Yusduqs     200.000

01/02    APPL4    Apple      200.000

01/02    DISN    Disney      1.500.000

02/02    APPL3    Apple       100.000

02/02    YUSS    Yusduqs     1.250.000

02/02    DISN     Disney     2.000.000

02/02    APPL4    Apple     1.250.000

 ...            ...           ....

Мне нужно выбрать акции, которые торговались более 80% дней с объемом более 500 000,00 долларов в день.

И мне нужно выберите ** только одну акцию на фирму, критерий - у которой больше объема за все дни вместе взятые. Как и для «Apple» в [Компания], у меня есть два разных [Stock] Appl3 и Appl4, в этом конкретном случае c мне нужен только APPL4.

(Поскольку Объем дней объединен в Appl4> Объем дни, объединенные в приложении3)

Я начал так:

unique_dates=len(df['Date'].value_counts()) share_freq=df[df['Volume']>=500000]]['Stock'].value_counts() stocks=share_freq/unique_dates for stock,value in stocks.items(): if(value>0.8): print(stock)

Итак, после этого я могу увидеть, какой из них имеет> 0,8, но мне все равно нужно выбрать только одна акция на фирму. Я не знаю, как соблюдать весь критерий ios и в конце отфильтровать весь фрейм данных по критерию ios и сохранить в .csv

1 Ответ

0 голосов
/ 27 мая 2020

Мы можем использовать nunique

n=df.loc[df['Volume']>=500000,'Date'].groupby(df['Stock']).nunique()
uniquedate=df.Date.nunique()
n=n[n/uniquedate >0.8]
print(n.index)

Обновление

df.loc[df.Stock.isin(n.index)].to_excel('output.xlsx')
...