質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

1回答

1323閲覧

pandasのpd.read_csvで土日祝日を除外した当日までの指定期間のデータを作成したい

karakarakarappo

総合スコア28

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2022/06/10 17:18

以下のデータフレームから、以下のように情報を抽出したいです。

  • 当日を含め7日間のデータを抽出したい
  • 土日祝日を除外する

※6/10を当日と仮定すると、取得したいデータは6/2,3,6,7,8,9,10です。

毎日コードを実行したいので、日付の指定に関しては、(df[] > '20220531')等で毎日入力値を変更するのは避けたいです。
また、土日祝日の情報に関しても、以下で祝日情報を取得し、リスト化して除外しようと考えましたが、上手く動作ができませんでした。

python

1holidays_list = jpholiday.year_holidays(2022)

以下サンプルとしてご利用ください。

python

1# テストデータ 2s = """列1,trade_date,product_class,instrument_id,instrument,broker_code,broker_name,item,volume 312,20220610,A,60018,A 2206,11560,G,SELL,181.0 438,20220609,A,90018,A 2209,11560,G,SELL,1.0 556,20220608,AA,60019,AA 2206,11560,G,SELL,395.0 684,20220603,B,60005,B 2206,11560,G,SELL,1895.0 7103,20220602,B,90005,B 2209,11560,G,SELL,1179.0 88282,20220531,A,60018,A 2206,11560,G,BUY,153.0 956,20220606,AA,60019,AA 2206,11560,G,BUY,395.0 108282,20220531,A,60018,A 2206,11560,G,SELL,153.0 118305,20220530,AA,10019,AA 2206,11560,G,SELL,8129.0 128345,20220523,B,10005,BB 2206,11560,G,SELL,5708.0 138638,20220522,A,60018,A 2206,11560,G,SELL,556.0 148662,20220521,B,60005,B 2206,11560,G,SELL,5862.0 159995,20220519,A,60018,A 2206,11560,G,SELL,50.00 169996,20220518,AA,90018,AA 2209,11560,G,BUY,150.00""" 17df = pd.read_csv(StringIO(s), dtype={'trade_date':str}) 18

ご知見を共有いただければ幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2022/06/11 00:10

- 現状できているまでのコード - 何が分からないのか?(コード実行「当日」の取得方法から分からないのか?) - 祝日の除外について、どのようにして、どのようにうまく動作しなかったのか などを記載ください。
meg_

2022/06/11 01:26

> 上手く動作ができませんでした。 ・そのときのコード ・”どう”上手くいかなかったのか?の情報 を質問に追記してください。
guest

回答1

0

python

1##df = pd.read_csv(StringIO(s), dtype={'trade_date':str}) 2df = pd.read_csv(StringIO(s), parse_dates=['trade_date']) 3 4import numpy as np 5 6N = -7 7holidays_list = [i for i, _ in jpholiday.year_holidays(2022)] 8diff = np.busday_count( 9 np.repeat(pd.Timestamp.now().date(), df['trade_date'].size).astype('datetime64[D]'), 10 df['trade_date'].values.astype('datetime64[D]'), 11 holidays=holidays_list) 12 13print(df.query('@N < @diff <= 0')) 14#print(df[(diff>N)&(diff<=0)]) 15 16# 171 trade_date product_class instrument_id ... broker_code broker_name item volume 180 12 2022-06-10 A 60018 ... 11560 G SELL 181.0 191 38 2022-06-09 A 90018 ... 11560 G SELL 1.0 202 56 2022-06-08 AA 60019 ... 11560 G SELL 395.0 213 84 2022-06-03 B 60005 ... 11560 G SELL 1895.0 226 56 2022-06-06 AA 60019 ... 11560 G BUY 395.0 23 24[5 rows x 9 columns]

投稿2022/06/11 01:43

編集2022/06/11 01:59
melian

総合スコア19714

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問