🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

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

pandas

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

Q&A

解決済

1回答

6177閲覧

python pandas ひとつのCSVファイルに別シートで保存したい

ekTJ

総合スコア109

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

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

pandas

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

0グッド

0クリップ

投稿2021/02/05 02:51

前提・実現したいこと

初心者のためお助けいただきたいです。
pandas、データフレームの特定のカラムでグループ分けしたデータを一つのファイルにシート毎で出力したいです。

ファイル名:[code + "_{}.csv".format(time)]
シート名:20201114,20201219("スキャン日"毎に分けたい)

データフレームの内容

df = pd.DataFrame( data, columns=headers) df = df.sort_values(["スキャン日","スキャン時間"],ascending=[True,True]) 取込日   通番   スキャン日 スキャン時間 FL 20201116 17351 20201114 120443 12 20201116 17353 20201114 120650 12 20201221 31268 20201219 114921 15 20201221 31276 20201219 115003 15 20201221 31285 20201219 115148 15

試したこと

python

1for sub_df in df.groupby('スキャン日'): 2 sub_df.to_csv( code + "_{}.csv".format(time), encoding="cp932",index=False,quoting=csv.QUOTE_ALL, mode="a")

これだと"スキャン日"のカラムをグループ分けした結果を、同ファイルの同シートに保存されてしまいます。

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

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

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

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

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

yamap55

2021/02/05 04:06

csvにシートという概念はありません。Excelでcsvを開くと便宜上シートが1つ作成されその中にデータが表示されますが、csv自体にシートという概念はないので、シートを分ける事はできません。 xlsxで出力する事でekTJさんの希望通りの事が可能かと思います。
yamap55

2021/02/05 04:08

あまり詳しくありませんが、pandasのdataframeにはto_excel()という関数があるようなので、こちらで対応できるかと思います。
ekTJ

2021/02/05 05:15

yamap_55様ありがとうございます。 ちなみにto_excel()での対応方法はお分かりになられますか。
guest

回答1

0

自己解決

python

1with pd.ExcelWriter(filename, engine="xlsxwriter") as writer: 2 for day,df_sub in df.groupby('スキャン日'): 3 df_sub.to_excel(writer,index=False,sheet_name=day)

一つのエクセルファイルに、スキャン日毎のシート名でデータを作成することが出来ました

投稿2021/02/05 05:56

ekTJ

総合スコア109

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問