4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでエクセル操作(読み込み、列を指定して削除する、列と行を入れ替える、保存)

Posted at

はじめに

この記事は、Windows環境でJupyter Notebookを使って、PythonでExcelの読み込みと編集、保存をするための記事です。
この記事でやっていること。

  • Pandasのインストール
  • Excelファイル(.xlsx)の読み込み
  • DataFrame(Excel)の行数の読み込み
  • 読み込んだファイルの表示
  • 列を指定して削除する
  • 列と行を入れ替える

前準備

必要なライブラリのインストールをします。
JupyterNotebookを使っていれば、下記のように書けばインストールされます。

ExcelData.py
! pip install pandas
! pip install xlrd

Excelファイルの読み込み

ExcelData.py
#同一ディレクトリに置いたData.xlsxを読み込み、dfとする
df = pd.read_excel('Data.xlsx', index=False, dytpe='object')

  • pandasで取り込んだファイルはDataFrameオブジェクトとして取り込まれる

読み込んだ行数を取得

ExcelData.py
filelen = len(df)
print(filelen,'行読み込みました')
  • len(df)で行数が取得できます。

#不要な列を削除する
例えば、下記のようなテーブルを読み込ませていた場合

日付 天気 気温
20180101 晴れ 10
20180102 9
20180103 曇り 8
ExcelData.py

df=df.drop(columns='天気')

df.drpで列名を指定してあげると、削除される

日付 気温
20180101 10
20180102 9
20180103 8

#列と行を入れ替える
先ほど天気を削除したdfをそのまま使うと

日付 気温
20180101 10
20180102 9
20180103 8
ExcelData.py
df2=df.T

すごく簡単に入れ替える事ができる

0 1 2 3
日付 20180101 20180102 20180103
気温 10 9 8

#Excelファイルを出力する

ExcelData.py
#Excel書き込み
df.to_excel('ExportData.xlsx' , index=False)
  • index=Falseはインデックスを出力しない

ソースまとめ

LoadExcel.py
#Excelファイルを読み込むためのPandasをインポート
import pandas as pd

#同一ディレクトリに置いたData.xlsxを読み込み、dfとする
df = pd.read_excel('Data.xlsx', index=False, dytpe='object')

#読み込んだ行数を表示
fileLen = len(df)
print(fileLen,"行読み込みました")

#読み込んだファイルを表示
display(df)

#天気列の削除
df=df.drop(columns='天気')
display(df)

#列と行を入れ替える
df=df.T
display(df)

#Excel書き込み
df.to_excel('ExportData.xlsx' , index=False)

4
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?