gpt4 book ai didi

python - 如何获取特定月份或日期的所有数据行;多年来使用 pandas DataFrame 的情况?

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:06 31 4
gpt4 key购买 nike

我正在尝试寻找股票市场的季节性趋势。我希望能够了解 Assets 的表现,即自 1990 年以来 appl(苹果计算机)在 5 月份的平均返回是多少?我还想看看自 1990 年以来 aapl 在 9 月到 12 月之间的表现如何。最后,我还希望能够了解哪些日子最赚钱,即周一、周二、周三、周四的平均返回是多少,和自 1990 年以来的星期五?

我正在使用 pandas 数据框,并从雅虎财经加载的 csv 文件加载数据。无论我如何尝试都无法使其正常工作,任何帮助或意见将不胜感激。另外,我的代码没有使用苹果的股票,而是使用股票代码 CDE

此外,当我运行代码时,我只获得数据的结尾和开头,如何将其显示到显示所有 6000 多行的位置?

from pandas_datareader import data as dreader
import pandas as pd


df = pd.read_csv("cde_data.csv",index_col='Date')


print(df['1900-05':'2016-05'])

我试图获得五月份的返回,但我得到的是范围

              Open    High     Low   Close   Volume   Adj Close
Date
1990-04-12 26.875 26.875 26.625 26.625 6100 250.576036
1990-04-16 26.500 26.750 26.375 26.750 500 251.752449
1990-04-17 26.750 26.875 26.750 26.875 2300 252.928863
1990-04-18 26.875 26.875 26.500 26.625 3500 250.576036
1990-04-19 26.500 26.750 26.500 26.750 700 251.752449
1990-04-20 26.750 26.875 26.750 26.875 2100 252.928863
1990-04-23 26.875 26.875 26.750 26.875 700 252.928863
1990-04-24 27.000 27.000 26.000 26.000 2400 244.693970
1990-04-25 25.250 25.250 24.875 25.125 9300 236.459076
1990-04-26 25.000 25.250 24.750 25.000 1200 235.282663
1990-04-27 25.000 25.250 25.000 25.250 1100 237.635490
1990-04-30 25.125 25.250 25.000 25.125 3500 236.459076
1990-05-01 25.375 25.500 25.250 25.250 1100 237.635490
1990-05-02 25.125 25.125 24.000 24.250 1800 228.224183
1990-05-03 25.000 25.000 24.625 24.750 9100 232.929836
1990-05-04 24.625 24.875 24.375 24.750 500 232.929836
1990-05-07 25.000 25.000 24.625 24.625 900 231.753423
1990-05-08 24.875 25.250 24.875 25.125 400 236.459076
1990-05-09 25.375 25.875 25.250 25.875 6900 243.517556
1990-05-10 26.000 26.750 26.000 26.750 5500 251.752449
1990-05-11 27.000 27.000 26.875 27.000 1800 254.105276
1990-05-14 27.000 27.250 26.750 27.000 6800 254.105276
1990-05-15 27.000 27.125 26.625 26.750 3300 251.752449
1990-05-16 26.625 26.625 25.875 25.875 2600 243.517556
1990-05-17 26.125 26.500 26.000 26.375 500 248.223210
1990-05-18 26.250 26.875 26.250 26.875 1000 252.928863
1990-05-21 27.375 27.375 26.875 27.375 2700 257.634516
1990-05-22 27.625 28.250 27.500 27.875 2000 262.340169
1990-05-23 27.375 28.500 27.125 28.000 4000 263.516583
1990-05-24 28.250 28.375 27.625 27.875 1100 262.340169
... ... ... ... ... ... ...
2016-03-18 5.490 5.750 5.390 5.590 9415600 5.590000
2016-03-21 5.560 5.940 5.550 5.760 4018800 5.760000
2016-03-22 5.810 5.890 5.680 5.800 3429600 5.800000
2016-03-23 5.330 5.570 5.200 5.250 4445500 5.250000
2016-03-24 5.260 5.400 5.150 5.280 2668800 5.280000
2016-03-28 5.320 5.480 5.210 5.440 2093700 5.440000
2016-03-29 5.400 5.850 5.380 5.710 3709800 5.710000
2016-03-30 5.640 5.780 5.490 5.650 2444900 5.650000
2016-03-31 5.800 5.860 5.570 5.620 2319800 5.620000
2016-04-01 5.410 5.650 5.210 5.640 2922400 5.640000
2016-04-04 5.620 5.690 5.430 5.550 2561200 5.550000
2016-04-05 5.620 5.770 5.440 5.730 2294900 5.730000
2016-04-06 5.630 5.880 5.610 5.820 2108400 5.820000
2016-04-07 5.900 6.110 5.870 5.940 2963100 5.940000
2016-04-08 5.790 6.030 5.750 6.010 3583700 6.010000
2016-04-11 6.160 6.500 6.110 6.490 5140100 6.490000
2016-04-12 6.580 6.730 6.330 6.720 4015000 6.720000
2016-04-13 6.640 6.990 6.600 6.700 3972300 6.700000
2016-04-14 6.660 6.750 6.220 6.380 4125700 6.380000
2016-04-15 6.410 6.750 6.370 6.670 2907800 6.670000
2016-04-18 6.700 6.830 6.530 6.790 2452900 6.790000
2016-04-19 7.110 7.450 6.970 7.380 6057600 7.380000
2016-04-20 7.410 7.680 6.820 7.000 6494400 7.000000
2016-04-21 7.300 7.530 6.940 7.140 4394000 7.140000
2016-04-22 7.080 7.380 6.730 6.890 3838700 6.890000
2016-04-25 6.850 7.040 6.720 6.870 2905400 6.870000
2016-04-26 6.900 7.190 6.700 7.100 2743900 7.100000
2016-04-27 7.160 7.280 6.870 7.180 3558900 7.180000
2016-04-28 7.350 7.960 7.080 7.440 6516000 7.440000
2016-04-29 7.650 8.140 7.650 8.100 6457000 8.100000

[6564 rows x 6 columns]
Press any key to continue . . .

最佳答案

使用标准库datetime并编写辅助函数来完成您想要的转换。然后通过将辅助函数应用于“日期”列来创建一个新列。

from datetime import datetime
import dateutil.parser

def hour(x):
return(x.hour)
def dow(x):
return(x.isoweekday())
def month(x):
return(x.month)

df.reset_index()
df.Date = df.Date.apply(dateutil.parser.parse)
df["hour"] = df.Date.apply(hour)
df["dow"] = df.Date.apply(dow)
df["month"] = df.Date.apply(month)

现在您可以对您创建的列进行分组或对您创建的列进行切片。要获得一月份的所有星期五切片,如下所示:

df[(df.dow == 5) & (df.month == 1)]

要打印更多行,您可以通过在导入下方添加以下行来更改设置:

pd.options.display.max_rows = 6000

关于python - 如何获取特定月份或日期的所有数据行;多年来使用 pandas DataFrame 的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401487/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com