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

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

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

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

pandas

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

Q&A

解決済

1回答

799閲覧

取得したCSVファイルを3ヵ月単位で遡って別々のCSVファイルとして出力したい

kitaru

総合スコア21

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

pandas

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

0グッド

0クリップ

投稿2022/01/07 04:09

編集2022/01/07 06:42

#前提・実現したいこと
Google Colaboratoryを使って取得したCSVファイルを3ヵ月単位で遡って別々のCSVファイルとして出力したいです。
ご教示のほど、どうぞよろしくお願いいたします。

#該当のソースコード

#パスで指定したファイルの一覧をリスト形式で取得 csv_files = glob.glob('/content/drive/MyDrive/*.csv') #csvファイルの中身を追加していくリストを用意 data_list = [] #読み込むファイルのリストを操作 for file in csv_files: data_list.append(pd.read_csv(file)) #リストを全て行方向に結合 df = pd.concat(data_list, axis=0, sort=False) #特定行のみを除外 df = df.drop(index=50000) #結合したcsvファイルを出力 df.to_csv('/content/drive/MyDrive/*.csv',index=False) #結合したcsvファイルを読み込む df = pd.read_csv('/content/drive/MyDrive/*.csv') #購入日を計算可能なフォーマットを変換 df['購入日'] = pd.to_datetime(df['購入日'])

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

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

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

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

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

can110

2022/01/07 05:10

処理に必要な、日時に関する情報の詳細を記載ください(どこにどのような形で存在するのか)
kitaru

2022/01/07 06:44

解答がズレていたらすみませんが、下記を追加しました。 csvのF列に項目名「購入日」で「2022/1/1」という形で存在しております。 #購入日を計算可能なフォーマットを変換 df['購入日'] = pd.to_datetime(df['購入日'])
guest

回答1

0

ベストアンサー

日付の列が存在するのであればpandas.Grouperを使って任意の期間毎にグルーピングできます。
あとはグループ毎にCSV出力など任意の処理ができます。

なお、より詳細な期間の指定方法については以下を参照ください。
pandasの時系列データにおける頻度(引数freq)の指定方法
Offset aliases

Python

1import pandas as pd 2 3# テストデータ 4date = pd.date_range(start='2021-02-10', end='2022-01-01', freq='10D') 5df = pd.DataFrame({'id':[i+1 for i in range(len(date))], 'date':date}) 6 7grp = df.groupby(pd.Grouper(key='date', freq='3MS')) # データ先頭の月(=2月)から3カ月毎 8for g, df in grp: 9 g = g.strftime('%Y-%m-%d') 10 print(g) 11 print(df) 12 #df.to_csv(f'ret{g}.csv', index=False)

投稿2022/01/07 08:05

can110

総合スコア38266

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

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

kitaru

2022/01/10 04:45

できました!ありがとうございます!
kitaru

2022/01/10 04:58

すみません、ベストアンサーに選出したあとに気づいたのですが、 3ヵ月毎のデータを分割ではなく、それぞれ累計していくことは可能でしょうか? 例: 1つ目のファイルは:2021-02-10から2021-05-10 2つ目のファイルは:2021-02-10から2021-08-10 3つ目のファイルは:2021-02-10から2021-11-10 など どうぞよろしくお願いいたします。
can110

2022/01/10 05:05

できると思いますが、元の問題とはわりと異なる質問内容となるので、別途質問を立てた方がよいかと思います。
kitaru

2022/01/11 01:26

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問