質問: 0: print(str(i) + "レコードまで処理") print(datetime.datetime.now()) ``` ``` pushList_id Symbol SymbolName Exchange ExchangeName CurrentPrice CurrentPriceTime CurrentPriceChangeStatus CurrentPriceStatus CalcPrice ... Sell6Price Sell6Qty Sell7Price Sell7Qty Sell8Price Sell8Qty Sell9Price Sell9Qty TotalMarketValue UnderBuyQty 0 4ab06a34-48af-46ca-9be9-283789524fa8 1447 ITbookホールディングス 1 東証マザーズ 0 2020-09-24 08:08:14.667339+09 NaN -1 915 ... 915 3600 916 6300 918 200 919 200 18123314415 215000 1 733360c1-7b3a-400a-971b-7d376277f7dc 7044 ピアラ 1 東証1部 0 2020-09-24 08:08:16.007247+09 NaN -1 2480 ... 2525 100 2536 300 2549 100 2560 400 17636966400 18200 2 8bf71bef-1a13-42ea-a23e-232c45176d09 3050 DCMホールディングス 1 東証1部 0 2020-09-24 08:08:17.408563+09 NaN -1 1525 ... 1564 700 1565 200 1566 300 1568 1000 244818443100 131000 3 e9760a1a-741c-482c-abd0-994b0ac78ebc 3776 ブロードバンドタワー 1 東証JQス 0 2020-09-24 08:08:17.692836+09 NaN -1 605 ... 634 200 635 3200 637 200 638 8100 36380767500 511200 4 07f99027-d7a9-45e4-ab78-891b3864e5e9 4722 フューチャー 1 東証1部 0 2020-09-24 08:08:18.171276+09 NaN -1 2298 ... 2300 800 2309 900 2310 500 2320 1300 109531872000 7000 5 ae39c2c4-fba3-458b-9c02-d52b5c609489 6580 ライトアップ 1 東証マザーズ 0 2020-09-24 08:08:18.471329+09 NaN -1 3135 ... 3180 300 3195 500 3200 1700 3220 100 9100905000 13100 6 782f5c31-57f0-4293-8de1-077388fd2963 3782 ディー・ディー・エス 1 東証マザーズ 0 2020-09-24 08:08:18.624487+09 NaN -1 310 ... 314 8900 315 13200 316 6000 317 7300 14225993000 243500 7 14aaf2a1-8274-47d4-bf98-803c3330a230 4308 Jストリーム 1 東証マザーズ 0 2020-09-24 08:08:20.357745+09 NaN -1 3835 ... 3845 100 3850 2200 3860 100 3870 300 53800064500 29800 8 717f1567-651c-4e69-8ddc-9f6f55098d31 4486 ユナイトアンドグロウ 1 東証マザーズ 0 2020-09-24 08:08:21.399333+09 NaN -1 1846 ... 1922 900 1927 100 1932 100 1935 100 6724239600 21800 9 e30a4b99-c464-40e0-9aa9-1645e2c8cef3 3776 ブロードバンドタワー 1 東証JQス 0 2020-09-24 08:08:22.101601+09 NaN -1 605 ... 634 200 635 3200 637 200 638 8100 36380767500 511300 10 ca042bc9-aca7-458b-ad90-605143f69b26 4722 フューチャー 1 東証1部 0 2020-09-24 08:08:22.533328+09 NaN -1 2298 ... 2300 800 2309 900 2310 500 2315 100 109531872000 7000 11 e6591f32-3ea9-43ed-873b-ce705438f0be 3998 すららネット 1 東証マザーズ 0 2020-09-24 08:08:24.452058+09 NaN -1 6220 ... 6220 3900 6230 300 6240 100 6250 2200 39435017700 24700 12 fdd0c61e-0356-4a4f-90f1-901d2570d544 6579 ログリー 1 東証マザーズ 0 2020-09-24 08:08:25.284751+09 NaN -1 7320 ... 0 0 0 0 0 0 0 0 13684008000 17900 13 c0cdf143-6c26-4ef5-9512-1cc0a2625b04 4347 ブロードメディア 1 東証JQス 0 2020-09-24 08:08:26.323568+09 NaN -1 115 ... 120 32900 121 40200 122 69100 123 71200 9101942145 899700 14 a43c18c0-e016-4e8e-a734-fc1d5c5bad34 4347 ブロードメディア 1 東証JQス 0 2020-09-24 08:08:26.971614+09 NaN -1 115 ... 120 36900 121 40200 122 69100 123 71200 9101942145 899700 15 999b66f7-385a-4ac0-b0fe-261d47607dd1 3776 ブロードバンドタワー 1 東証JQス 0 2020-09-24 08:08:28.060202+09 NaN -1 605 ... 634 200 635 3200 637 200 638 8100 36380767500 511300 16 d85e324b-7021-471d-9e3e-925542a58fa0 8226 理経 1 東証2部 0 2020-09-24 08:08:28.129255+09 NaN -1 277 ... 279 6100 280 11600 281 3900 282 14500 4297577717 540800 17 70ec8f01-d75d-4b3c-bde4-6b5b6016291f 6579 ログリー 1 東証マザーズ 0 2020-09-24 08:08:28.329728+09 NaN -1 7320 ... 0 0 0 0 0 0 0 0 13684008000 17900 18 cf99c9e6-3907-4bff-a87a-f1b419f4c677 3681 ブイキューブ 1 東証1部 0 2020-09-24 08:08:28.345352+09 NaN -1 1791 ... 1796 100 1797 200 1798 300 1799 4900 43636282200 180100 19 3dd74a5c-c200-4527-881d-4728e9129461 3776 ブロードバンドタワー 1 東証JQス 0 2020-09-24 08:08:28.429994+09 NaN ``` ``` Index(['pushList_id', 'Symbol', 'SymbolName', 'Exchange', 'ExchangeName', 'CurrentPrice', 'CurrentPriceTime', 'CurrentPriceChangeStatus', 'CurrentPriceStatus', 'CalcPrice', 'PreviousClose', 'PreviousCloseTime', 'ChangePreviousClose', 'ChangePreviousClosePer', 'OpeningPrice', 'OpeningPriceTime', 'HighPrice', 'HighPriceTime', 'LowPrice', 'LowPriceTime', 'TradingVolume', 'TradingVolumeTime', 'VWAP', 'TradingValue', 'BidQty', 'BidPrice', 'BidTime', 'BidSign', 'MarketOrderSellQty', 'Sell1Time', 'Sell1Sign', 'Sell1Price', 'Sell1Qty', 'created_date_at', 'created_timestamp_at', 'updated_timestamp_at', 'AskPrice', 'AskQty', 'AskSign', 'AskTime', 'Buy10Price', 'Buy10Qty', 'Buy1Price', 'Buy1Qty', 'Buy1Sign', 'Buy1Time', 'Buy2Price', 'Buy2Qty', 'Buy3Price', 'Buy3Qty', 'Buy4Price', 'Buy4Qty', 'Buy5Price', 'Buy5Qty', 'Buy6Price', 'Buy6Qty', 'Buy7Price', 'Buy7Qty', 'Buy8Price', 'Buy8Qty', 'Buy9Price', 'Buy9Qty', 'MarketOrderBuyQty', 'OverSellQty', 'Sell10Price', 'Sell10Qty', 'Sell2Price', 'Sell2Qty', 'Sell3Price', 'Sell3Qty', 'Sell4Price', 'Sell4Qty', 'Sell5Price', 'Sell5Qty', 'Sell6Price', 'Sell6Qty', 'Sell7Price', 'Sell7Qty', 'Sell8Price', 'Sell8Qty', 'Sell9Price', 'Sell9Qty', 'TotalMarketValue', 'UnderBuyQty'], dtype='object') ```
回答: 9:00から15:00の内11:30から12:30は0 同一銘柄のを上がったら2、下がったら1、変動なしのうち30秒以上は3、30秒以内は欠損にしています ``` import datetime import io import pandas as pd data = """ ,pushList_id,Symbol,SymbolName,Exchange,ExchangeName,CurrentPrice,CurrentPriceTime,CurrentPriceChangeStatus,CurrentPriceStatus,CalcPrice,...,Sell6Price,Sell6Qty,Sell7Price,Sell7Qty,Sell8Price,Sell8Qty,Sell9Price,Sell9Qty,TotalMarketValue,UnderBuyQty 0,4ab06a34-48af-46ca-9be9-283789524fa8,1447,ITbookホールディングス,1,東証マザーズ,0,2020-09-24 07:08:14.667339+09,,-1,915,...,915,3600,916,6300,918,200,919,200,18123314415,215000 1,733360c1-7b3a-400a-971b-7d376277f7dc,7044,ピアラ,1,東証1部,0,2020-09-24 08:08:16.007247+09,,-1,2480,...,2525,100,2536,300,2549,100,2560,400,17636966400,18200 2,8bf71bef-1a13-42ea-a23e-232c45176d09,3050,DCMホールディングス,1,東証1部,0,2020-09-24 08:08:17.408563+09,,-1,1525,...,1564,700,1565,200,1566,300,1568,1000,244818443100,131000 3,e9760a1a-741c-482c-abd0-994b0ac78ebc,3776,ブロードバンドタワー,1,東証JQス,0,2020-09-24 08:08:17.692836+09,,-1,605,...,634,200,635,3200,637,200,638,8100,36380767500,511200 4,07f99027-d7a9-45e4-ab78-891b3864e5e9,4722,フューチャー,1,東証1部,0,2020-09-24 08:08:18.171276+09,,-1,2298,...,2300,800,2309,900,2310,500,2320,1300,109531872000,7000 5,ae39c2c4-fba3-458b-9c02-d52b5c609489,6580,ライトアップ,1,東証マザーズ,0,2020-09-24 08:08:18.471329+09,,-1,3135,...,3180,300,3195,500,3200,1700,3220,100,9100905000,13100 6,782f5c31-57f0-4293-8de1-077388fd2963,3782,ディー・ディー・エス,1,東証マザーズ,0,2020-09-24 08:08:18.624487+09,,-1,310,...,314,8900,315,13200,316,6000,317,7300,14225993000,243500 7,14aaf2a1-8274-47d4-bf98-803c3330a230,4308,Jストリーム,1,東証マザーズ,0,2020-09-24 08:08:20.357745+09,,-1,3835,...,3845,100,3850,2200,3860,100,3870,300,53800064500,29800 8,717f1567-651c-4e69-8ddc-9f6f55098d31,4486,ユナイトアンドグロウ,1,東証マザーズ,0,2020-09-24 08:08:21.399333+09,,-1,1846,...,1922,900,1927,100,1932,100,1935,100,6724239600,21800 9,e30a4b99-c464-40e0-9aa9-1645e2c8cef3,3776,ブロードバンドタワー,1,東証JQス,0,2020-09-24 08:08:22.101601+09,,-1,606,...,634,200,635,3200,637,200,638,8100,36380767500,511300 10,ca042bc9-aca7-458b-ad90-605143f69b26,4722,フューチャー,1,東証1部,0,2020-09-24 08:08:22.533328+09,,-1,2298,...,2300,800,2309,900,2310,500,2315,100,109531872000,7000 11,e6591f32-3ea9-43ed-873b-ce705438f0be,3998,すららネット,1,東証マザーズ,0,2020-09-24 08:08:24.452058+09,,-1,6220,...,6220,3900,6230,300,6240,100,6250,2200,39435017700,24700 12,fdd0c61e-0356-4a4f-90f1-901d2570d544,6579,ログリー,1,東証マザーズ,0,2020-09-24 08:08:25.284751+09,,-1,7320,...,0,0,0,0,0,0,0,0,13684008000,17900 13,c0cdf143-6c26-4ef5-9512-1cc0a2625b04,4347,ブロードメディア,1,東証JQス,0,2020-09-24 08:08:26.323568+09,,-1,115,...,120,32900,121,40200,122,69100,123,71200,9101942145,899700 14,a43c18c0-e016-4e8e-a734-fc1d5c5bad34,4347,ブロードメディア,1,東証JQス,0,2020-09-24 08:09:26.971614+09,,-1,115,...,120,36900,121,40200,122,69100,123,71200,9101942145,899700 15,999b66f7-385a-4ac0-b0fe-261d47607dd1,3776,ブロードバンドタワー,1,東証JQス,0,2020-09-24 08:08:28.060202+09,,-1,605,...,634,200,635,3200,637,200,638,8100,36380767500,511300 16,d85e324b-7021-471d-9e3e-925542a58fa0,8226,理経,1,東証2部,0,2020-09-24 08:08:28.129255+09,,-1,277,...,279,6100,280,11600,281,3900,282,14500,4297577717,540800 17,70ec8f01-d75d-4b3c-bde4-6b5b6016291f,6579,ログリー,1,東証マザーズ,0,2020-09-24 08:08:28.329728+09,,-1,7320,...,0,0,0,0,0,0,0,0,13684008000,17900 18,cf99c9e6-3907-4bff-a87a-f1b419f4c677,3681,ブイキューブ,1,東証1部,0,2020-09-24 08:08:28.345352+09,,-1,1791,...,1796,100,1797,200,1798,300,1799,4900,43636282200,180100 """ df = pd.read_csv(io.StringIO(data), index_col=0) df df["CurrentPriceTime"] = pd.to_datetime(df["CurrentPriceTime"]).dt.tz_localize(None) InTime= df["CurrentPriceTime"].dt.time.apply( lambda d: (datetime.time(8) < d < datetime.time(11, 30)) | (datetime.time(12, 30) < d < datetime.time(15)) ) df1 = df.loc[:, ["SymbolName", "CurrentPriceTime", "CalcPrice"]] df1 df_diff = df1.groupby("SymbolName").diff() # 上昇2、下降1、変動なし3、欠損None df_diff["Sign"] = df_diff["CalcPrice"].apply((lambda x: 1 if x < 0 else 2 if x > 0 else 3 if x == 0 else None)) # 30秒以内変動がないものを欠損 df_diff["Sign"] = df_diff["Sign"].mask((df_diff["CurrentPriceTime"] < pd.Timedelta(seconds=30)) & (df_diff["Sign"] == 3)) # 時間外を0 df_diff.loc[~InTime, "Sign"] = 0 df["Sign"] = df_diff["Sign"] df ```