簡體   English   中英

如何從日期欄中獲取每個股票的年數總和?(熊貓)

[英]How do I get the sum of years from date column in reference to each ticker?(Pandas)

我有一個看起來像下面的數據框:

        Date    Open    High    Low    Close        Symbol
    1990-11-05  3.88    4.25    3.25    4.25        WIKI/DDD
    1990-11-06  3.50    4.25    3.50    3.62        WIKI/DDD
    1991-11-07  3.50    4.00    3.50    4.00        WIKI/DDD
    1990-11-08  4.00    4.00    3.75    4.00        WIKI/DDD
    2017-11-09  4.00    4.00    3.50    3.50        WIKI/DDD
    1990-11-05  3.88    4.25    3.25    4.25        WIKI/AAPL
    1990-11-06  3.50    4.25    3.50    3.62        WIKI/AAPL
    1995-11-07  3.50    4.00    3.50    4.00        WIKI/AAPL
    1995-11-08  4.00    4.00    3.75    4.00        WIKI/AAPL
    2017-11-09  4.00    4.00    3.50    3.50        WIKI/AAPL

我正在嘗試建立一個新的列,求和並給我每家公司交易的年數。

        Date    Open    High    Low    Close        Symbol    Yrs_Publ_Trd
    1990-11-05  3.88    4.25    3.25    4.25        WIKI/DDD     34
    1990-11-06  3.50    4.25    3.50    3.62        WIKI/DDD     34
    1991-11-07  3.50    4.00    3.50    4.00        WIKI/DDD     34
    1990-11-08  4.00    4.00    3.75    4.00        WIKI/DDD     34
    2017-11-09  4.00    4.00    3.50    3.50        WIKI/DDD     34
    1990-11-05  3.88    4.25    3.25    4.25        WIKI/AAPL    28
    1990-11-06  3.50    4.25    3.50    3.62        WIKI/AAPL    28
    1995-11-07  3.50    4.00    3.50    4.00        WIKI/AAPL    28
    1995-11-08  4.00    4.00    3.75    4.00        WIKI/AAPL    28
    2017-11-09  4.00    4.00    3.50    3.50        WIKI/AAPL    28

我的日期列是(datetime64 [ns])

我嘗試使用:

for i in mydata.groupby('Symbol').Date.size():
     print(mydata.Date.dt.year.max() -mydata.Date.dt.year.min())

和這個:

for i in np.unique(mydata.Symbol):
    print(mydata.Date.dt.year.max() -mydata.Date.dt.year.min())

我認為您需要為新列進行transform

mydata['Yrs_Publ_Trd'] = (mydata.groupby('Symbol').Date
                                .transform(lambda x: x.dt.year.max() - x.dt.year.min()))

另一個解決方案:

g = mydata['Date'].dt.year.groupby(mydata['Symbol'])
mydata['Yrs_Publ_Trd'] = g.transform('max') - g.transform('min')

print (mydata)

        Date  Open  High   Low  Close     Symbol  Yrs_Publ_Trd
0 1990-11-05  3.88  4.25  3.25   4.25   WIKI/DDD            27
1 1990-11-06  3.50  4.25  3.50   3.62   WIKI/DDD            27
2 1991-11-07  3.50  4.00  3.50   4.00   WIKI/DDD            27
3 1990-11-08  4.00  4.00  3.75   4.00   WIKI/DDD            27
4 2017-11-09  4.00  4.00  3.50   3.50   WIKI/DDD            27
5 1990-11-05  3.88  4.25  3.25   4.25  WIKI/AAPL            27
6 1990-11-06  3.50  4.25  3.50   3.62  WIKI/AAPL            27
7 1995-11-07  3.50  4.00  3.50   4.00  WIKI/AAPL            27
8 1995-11-08  4.00  4.00  3.75   4.00  WIKI/AAPL            27
9 2017-11-09  4.00  4.00  3.50   3.50  WIKI/AAPL            27

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM