【问题标题】:how can i filter a dataframe by some criteria and then save .csv?如何按某些标准过滤数据框,然后保存 .csv?
【发布时间】:2020-09-13 22:23:59
【问题描述】:

大家好,我几天前开始使用 jupyter notebook。

我需要帮助,我有一个 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 美元的股票。

而且我需要选择**每家公司只有一只股票,标准是在所有日子里总成交量更多的股票。就像 [Company] 中的“Apple”,我有两个不同的 [Stock] Appl3 和 Appl4,在这种特定情况下,我只需要 APPL4。

(因为 Appl4 中合并的天数 > Appl3 中合并的天数)

我是这样开始的:

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,但我仍然需要为每家公司选择一只股票。我不知道如何尊重所有标准,最后按标准过滤所有数据帧并保存在 .csv 中

【问题讨论】:

  • 你能建立一个更具体的标题吗?一个好的标题不仅可以让人们很好地了解他们是否知道您的问题的答案——它还可以帮助遇到相同问题的其他人判断您的问题的答案是否会对他们有所帮助。 “我不知道从哪里开始”并不能真正帮助任何人知道他们是否有同样的问题,这会阻止这在 Stack Overflow 的effort to build a long-tail FAQ 上下文中成为有用的知识库条目。
  • 好的,谢谢@CharlesDuffy 的提示

标签: python pandas jupyter-notebook jupyter finance


【解决方案1】:

我们可以使用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')

【讨论】:

  • 是的,我可以看到哪些公司的值 >0.8。但是现在我怎样才能删除所有没有> 0.8的股票然后保存在.excel中?
  • @GlauberNaue 检查更新,如果有帮助,是否考虑接受?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 2022-11-13
相关资源
最近更新 更多