【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】

スポンサーリンク
Python

以前動いていたopenpyxlでの出力コードが動かなくなっていたので、その修正の紹介、ならびに備忘録となります。この記事を読むことでPythonで利用するdataframeなどをエクセル(Excel)ファイルやCSVファイルに出力できるようになります。

目標・この記事を書いたわけ

Pythonのdataframeなどをエクセル(Excel)ファイルやCSVファイルに出力します。
以前のopenpyxl=3.0.3では動いていたコードがopenpyxl=3.0.10では

といったZip fileのエラーで動かなくなっていたので、動くようにすることが目的です。

使用するツール

使用するツールはGoogle Colaboratoryのpythonを使いますので、無料で、簡単に行うことができます。Google Colaboratoryについては以前書いた記事をご参照いただければと思います。

実際のコードとやっていること

こんかいはダミーデータを作って、そのdataframeデータをエクセル(Excel)ファイルやCSVファイルに出力するものとします。

ダミーデータ作成についてはこちらの記事の前半を利用します。

約8500行のデータを作成することになります。以下はそのコードになります。

import pandas as pd
import numpy as np
import datetime

start_date = datetime.date(1990,1,1)
end=datetime.date.today()

date_df = pd.DataFrame(pd.date_range(start_date, end, freq='B').date, columns=['date'])

date_df["value"]=np.nan

display(date_df.head().append(date_df.tail(10)))
import random
%%time
for i in range(len(date_df)):
  date_df.loc[i,"value"]=random.randint(0,len(date_df))

display(date_df.head().append(date_df.tail(10)))

今回はここで作成したダミーデータ data_df をエクセル(Excel)ファイルやCSVファイルに出力します。

エクセル(Excel)ファイルへの出力

コードは以下のようになります。

import openpyxl
print(openpyxl.__version__)

with pd.ExcelWriter("Excelout.xlsx") as writer:
    date_df.to_excel(writer)  

上記コードを実行させるとopenpyxl のバージョンが3.0.10であることが分かりますし、Excelout.xlsxというファイルに先ほどのdata_dfというデータテーブルが出力されることになります。

ディレクトリ構造の確認(赤矢印)とファイルの確認(青矢印)を見ていただくと新規にファイルが作成されていることが分かります。

ダブルクリックしてそのファイルを自身のPC上にダウンロードし、エクセルで開くと以下のようなファイルが取得できることが分かります。

エクセル(Excel)ファイルから入力

コードは以下の通りです。

input_file_name = './Excelout.xlsx'
input_book = pd.ExcelFile(input_file_name) 
input_sheet_name = input_book.sheet_names
input_sheet_df = input_book.parse(input_sheet_name[0]).dropna()
display(input_sheet_df)

CSVファイルへの出力

print(pd.__version__)

filename="./CSVout.csv"
date_df.to_csv(filename, encoding="utf-8-sig", header=True)

CSVファイルが作成されていることが分かると思います。ダブルクリックで右のエリアに内容を表示させることもできます。

ファイルを選んで右クリックでダウンロードすることもできます。

また、ファイルが表示されないときなど、何もないところで右クリックすることでディレクトリ内の情報を最新の物に更新(Refresh)することもできます。

CSVファイルからの入力

コードは以下の通りです。

df_csv_input = pd.read_csv("./CSVout.csv")
display(df_csv_input)

この記事が皆さんのお役に立てば幸いです。

Pythonに関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
デコピコミンが全国(47都道府県)で、どの施設に出てくるか地図(Google Maps)で確認!!【ピクミン ブルーム(Pikmin Bloom)】
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
Windows10で機械学習環境チェック CPU/GPUでTensorflowの作業時間はどのくらい違うのか、Google Colabとも比較してみた。(CUDA Toolkit,cuDNN)
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
米国債のゼロクーポン債STRIPSについてのメモ
ConoHa WINGレンタルサーバーでPython! Webアプリcgiを動かす手順を紹介!3つの例あり【コピペで動く!】
株価時系列データを分析する上で正規化を行う事の重要性について紹介する【違いをみつけろ!】
Google Analytics にPython APIで接続してみた話【コピペで動く!】
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
Google Data Portalを使ってWeb上のオープンデータを使って簡単に情報を可視化しようという話

コメント

タイトルとURLをコピーしました