首页 > 解决方案 > Python_如何计数

问题描述

我有一个关于在 python 中计数的问题。我有一个 csv 文件,如下所示:

GOOG,100,900.10
MSFT,50,68.99
AAPL,100,152.92
IBM,5,151.95
GOOG,150,901.25
AAPL,50,152.25
TEAM,100,36.91
NVDA,75,117.88
INTC,200,36.24
IBM,10,151.91
AAPL,700,152.15
GOOG,100,900.99
GOOG,50,900.12

数据集没有明确定义,因此我需要解释一下。第一栏是工具,第二栏是数量,最后一栏是价格。我需要读取这个 csv 文件,然后从被分割的数据中创建列,现在。然后,我需要通过将数量乘以价格来计算价值。之后,我应该计算交易数量并打印最常见的 5 种工具,如下所示:

 Top 5 trades by number of trades:
 GOOG:   4 trade(s) total of  400 shares, $ 360,302.50
 AAPL:   3 trade(s) total of  850 shares, $ 129,409.50
  IBM:   2 trade(s) total of   15 shares, $   2,278.85
 MSFT:   1 trade(s) total of   50 shares, $   3,449.50
 TEAM:   1 trade(s) total of  100 shares, $   3,691.00

我有以下代码不起作用,因为它不完整:

 from collections import defaultdict, Counter

 def analyse(filename):
   # I should write my counter here

   with open(filename) as src:
     for line in src:
       instrument, quantity, price = line.split(',')
       quantity = int(quantity)
       # I should compute value here

   # I need summarize my results here

   # This print can help me
print(f'{inst:>5}:  {count:2} trade(s) total of {quantity:4} shares, ${value:11,.2f}')

 if __name __ == '__main__':
   analyse('filename')

我是 python 新手,因此我无法自己解决这个问题。任何帮助将不胜感激。

标签: pythonpandasnumpy

解决方案


看看熊猫。它可以做你需要的所有事情。

从...开始:

df = pandas.read_csv(<filename>, usecols = ['ticker', 'price', quantity']))

usecols如果您的 csv 有列名,请使用。否则,在之后设置它们:df.columns = ['ticker', 'price', quantity'].

然后您可以对列进行操作,例如:

df['result'] = df['price'] * df['quantity']


推荐阅读