我们在创建一个DataFrame的矩阵数据表的时候,有时候会用到时间来标记index
,但是,偏偏我们读出来的数据就是object
型的数据,那就需要我们来转换一下了
代码语法
pandas.to_datetime(arg,format=None,unit=None)
参数 | 含义 |
---|---|
arg | 需要转换类型的数据 |
format | 所输入数据的时间格式 |
unit | 最小时间间隔,(Y:年;m:月;d:天) |
代码实例
准备数据
order_book_id date limit_down open limit_up num_trades close volume total_turnover high low
0 600161.XSHG 2015-01-05 11.2745 12.5121 13.7789 6101.0 12.7839 13794261.0 177930938.0 12.9198 12.2646
1 600161.XSHG 2015-01-06 11.5075 12.7791 14.0604 7125.0 13.1916 15235971.0 203203224.0 13.3469 12.6723
2 600161.XSHG 2015-01-07 11.8715 13.2741 14.5117 5166.0 13.2353 12485790.0 167635295.0 13.4440 13.0072
3 600161.XSHG 2015-01-08 11.9103 13.2353 14.5603 5575.0 13.2450 12447156.0 169846617.0 13.6381 13.1576
4 600161.XSHG 2015-01-09 11.9200 13.4780 14.5700 8867.0 13.5799 21315529.0 298020996.0 14.0167 13.4780
... ... ... ... ... ... ... ... ... ... ... ...
3015155 600668.XSHG 2018-12-25 10.5088 11.5343 12.8430 4056.0 11.5245 4623668.0 53972726.0 11.5929 11.2413
3015156 600668.XSHG 2018-12-26 10.3721 11.5538 12.6770 5270.0 11.7296 5052711.0 60656284.0 11.8175 11.4952
3015157 600668.XSHG 2018-12-27 10.5576 11.8956 12.9016 5270.0 11.5343 4189265.0 50372678.0 11.9152 11.5343
3015158 600668.XSHG 2018-12-28 10.3818 11.5343 12.6867 4302.0 11.5245 2651152.0 31367172.0 11.6710 11.4659
3015159 600668.XSHG 2019-01-02 10.3721 11.5343 12.6770 4325.0 11.2608 3608002.0 42027008.0 11.6026 11.2217
[3015160 rows x 11 columns]
查看info()
信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3015160 entries, 0 to 3015159
Data columns (total 11 columns):
order_book_id object
date object
limit_down float64
open float64
limit_up float64
num_trades float64
close float64
volume float64
total_turnover float64
high float64
low float64
dtypes: float64(9), object(2)
memory usage: 253.0+ MB
None
截图
我们可以看到,此时columns
中的date
的类型是object
那么,如果说我们要将date
设置为index
,并且能够要求根据时间条件进行切片,那么,我们就要将date的类型进行转换了
import pandas as pd
import numpy as np
pd.set_option('display.max_columns', 10000)
pd.set_option('display.width', 10000)
pd.set_option('display.max_colwidth', 10000)
file_path = "../csv_data/价格数据2015-01-01-2019-01-02.csv"
initial_data = pd.read_csv(file_path)
time_data = pd.to_datetime(initial_data["date"],format='%Y-%m-%d')
initial_data["date"] = time_data
date_index = initial_data.set_index(["date"])
print(date_index.info())
comprehensive_data = date_index["2015-01-01":"2019-01-01"]
s = comprehensive_data.groupby(by="order_book_id")
for i in s:
print(i)
随后我们将date
设置成index
,并且还做了条件的查询,根据实际情况进行了分组聚合,最终拿到结果
('000001.XSHE', order_book_id limit_down open limit_up num_trades close volume total_turnover high low
date
2015-01-05 000001.XSHE 9.2836 10.4099 11.3408 92478.0 10.4294 411902846.0 4.565388e+09 10.5987 10.1560
2015-01-06 000001.XSHE 9.3878 10.3187 11.4710 80325.0 10.2732 311964682.0 3.453446e+09 10.6703 10.1234
2015-01-07 000001.XSHE 9.2445 10.1299 11.3018 72697.0 10.0779 244817376.0 2.634796e+09 10.3057 9.9607
2015-01-08 000001.XSHE 9.0688 10.0909 11.0869 68734.0 9.7393 202710846.0 2.128003e+09 10.1364 9.7003
2015-01-09 000001.XSHE 8.7628 9.7003 10.7159 99882.0 9.8174 361224033.0 3.835378e+09 10.3318 9.5766
... ... ... ... ... ... ... ... ... ... ...
2018-12-24 000001.XSHE 8.4181 9.2985 10.2877 21980.0 9.3183 50911767.0 4.771869e+08 9.3479 9.2095
2018-12-25 000001.XSHE 8.3884 9.1897 10.2481 27340.0 9.2391 58661545.0 5.452356e+08 9.3282 9.1105
2018-12-26 000001.XSHE 8.3192 9.2490 10.1591 21088.0 9.1996 42114060.0 3.932151e+08 9.3183 9.1699
2018-12-27 000001.XSHE 8.2796 9.3479 10.1195 26768.0 9.1798 62459327.0 5.863438e+08 9.3875 9.1798
2018-12-28 000001.XSHE 8.2598 9.2095 10.0997 22504.0 9.2787 57660400.0 5.415710e+08 9.3578 9.2095
[975 rows x 10 columns])
('000002.XSHE', order_book_id limit_down open limit_up num_trades close volume total_turnover high low
date
2015-01-05 000002.XSHE 10.3949 11.9570 12.7049 185938.0 12.3891 656083570.0 9.700712e+09 12.7049 11.8158
2015-01-06 000002.XSHE 11.1510 12.1315 13.6272 123274.0 11.9321 334634683.0 4.839616e+09 12.4556 11.6745
2015-01-07 000002.XSHE 10.7356 11.8490 13.1287 91329.0 11.8241 264205133.0 3.772151e+09 12.0484 11.6330
2015-01-08 000002.XSHE 10.6442 11.8989 13.0040 108081.0 11.2923 263939418.0 3.629554e+09 11.9404 11.1843
2015-01-09 000002.XSHE 10.1622 11.2508 12.4224 115193.0 11.1760 329458430.0 4.521978e+09 11.8158 11.0430
... ... ... ... ... ... ... ... ... ... ...
2018-12-24 000002.XSHE 20.9891 22.9986 25.6522 48537.0 22.9601 49321942.0 1.164771e+09 23.1524 22.4313
2018-12-25 000002.XSHE 20.6622 22.5178 25.2580 40469.0 23.0466 42690126.0 1.016226e+09 23.2870 22.4794
2018-12-26 000002.XSHE 20.7391 22.9216 25.3542 25425.0 22.8832 22198726.0 5.285310e+08 23.0563 22.6717
2018-12-27 000002.XSHE 20.5949 23.3158 25.1715 34044.0 22.5371 35250178.0 8.492423e+08 23.6139 22.5371
2018-12-28 000002.XSHE 20.2872 22.7582 24.7869 31182.0 22.9024 32281093.0 7.727037e+08 23.3062 22.7582
[975 rows x 10 columns])
('000004.XSHE', order_book_id limit_down open limit_up num_trades close volume total_turnover high low
date
2015-01-05 000004.XSHE 14.01 15.58 17.13 2653.0 15.69 2809512.0 43746563.20 15.90 15.30
2015-01-06 000004.XSHE 14.12 15.65 17.26 3129.0 16.46 3337859.0 53863311.46 16.56 15.50
2015-01-07 000004.XSHE 14.81 16.45 18.11 2048.0 16.41 2073761.0 33752404.94 16.54 16.11
2015-01-08 000004.XSHE 14.77 16.41 18.05 3441.0 16.92 3645003.0 61074528.43 17.03 16.24
2015-01-09 000004.XSHE 15.23 16.92 18.61 2425.0 16.43 2715044.0 44894158.25 16.95 16.26
... ... ... ... ... ... ... ... ... ... ...
2018-12-24 000004.XSHE 14.64 16.29 17.90 405.0 16.45 230700.0 3776770.00 16.50 16.08
2018-12-25 000004.XSHE 14.81 16.42 18.10 417.0 16.17 229500.0 3698461.00 16.42 15.92
2018-12-26 000004.XSHE 14.55 16.18 17.79 279.0 16.31 163400.0 2653802.00 16.45 16.16
2018-12-27 000004.XSHE 14.68 16.61 17.94 345.0 16.03 197500.0 3226195.00 16.61 16.03
2018-12-28 000004.XSHE 14.43 15.73 17.63 275.0 16.03 167100.0 2685455.00 16.26 15.73
[975 rows x 10 columns])
('000005.XSHE', order_book_id limit_down open limit_up num_trades close volume total_turnover high low
date
2015-01-05 000005.XSHE 0.00 4.10 0.00 0.0 4.10 0.0 0.0 4.10 4.10
2015-01-06 000005.XSHE 0.00 4.10 0.00 0.0 4.10 0.0 0.0 4.10 4.10
2015-01-07 000005.XSHE 0.00 4.10 0.00 0.0 4.10 0.0 0.0 4.10 4.10
2015-01-08 000005.XSHE 0.00 4.10 0.00 0.0 4.10 0.0 0.0 4.10 4.10
2015-01-09 000005.XSHE 0.00 4.10 0.00 0.0 4.10 0.0 0.0 4.10 4.10
... ... ... ... ... ... ... ... ... ... ...
2018-12-24 000005.XSHE 2.55 2.83 3.11 696.0 2.84 1800000.0 5119151.0 2.86 2.82
2018-12-25 000005.XSHE 2.56 2.83 3.12 1950.0 2.76 5437752.0 14976403.0 2.83 2.72
2018-12-26 000005.XSHE 2.48 2.76 3.04 1169.0 2.74 3255500.0 8949578.0 2.77 2.73
2018-12-27 000005.XSHE 2.47 2.80 3.01 1503.0 2.66 5145255.0 14089573.0 2.80 2.66
2018-12-28 000005.XSHE 2.39 2.66 2.93 1192.0 2.68 3717158.0 9921105.0 2.69 2.65
[975 rows x 10 columns])
('000006.XSHE', order_book_id limit_down open limit_up num_trades close volume total_turnover high low
date
2015-01-05 000006.XSHE 5.6909 6.3631 6.9546 25095.0 6.3452 107864712.0 7.753464e+08 6.6230 6.2914
2015-01-06 000006.XSHE 5.7089 6.2735 6.9815 14055.0 6.1390 56627101.0 3.881573e+08 6.2735 6.0494
2015-01-07 000006.XSHE 5.5296 6.0942 6.7574 7948.0 6.1480 31064550.0 2.133143e+08 6.2287 6.0494
2015-01-08 000006.XSHE 5.5296 6.1838 6.7664 10003.0 6.0763 31136710.0 2.136464e+08 6.2735 5.9956
2015-01-09 000006.XSHE 5.4669 6.0136 6.6857 7181.0 6.0046 34609949.0 2.349265e+08 6.1570 6.0046
... ... ... ... ... ... ... ... ... ... ...
2018-12-24 000006.XSHE 4.6814 5.2026 5.7239 4195.0 5.1447 10425400.0 5.548671e+07 5.2220 5.0868
2018-12-25 000006.XSHE 4.6332 5.0386 5.6563 5348.0 4.9903 11680205.0 5.998073e+07 5.0579 4.8552
2018-12-26 000006.XSHE 4.4884 4.9806 5.4922 2678.0 5.0482 8184010.0 4.271484e+07 5.0772 4.9710
2018-12-27 000006.XSHE 4.5463 5.1158 5.5501 3026.0 4.9806 6960886.0 3.650962e+07 5.1447 4.9806
2018-12-28 000006.XSHE 4.4787 5.0386 5.4826 2308.0 4.9999 5026323.0 2.608634e+07 5.0482 4.9710
[975 rows x 10 columns])
。
。
。
。
注:datetime型与object型数据相互转换
语法 | 作用 |
---|---|
to_datetime() | object转为datetime |
strftime() | datetime转为object |
完。