PYTHON

【Python】pandasでExcelのセルを指定し入力する方法

2021-03-14

こんな方におすすめ

  • pythonを使ってExcelのセルに代入したい人
  • どのサイト見てもなんだかわかりづらくて、pythonが難しく感じる人

どうもわやです。
Pythonライフ楽しんでますか?

私も機械メーカでの勤務の傍ら、Pythonを使って遊んでいます。

この記事では、Pandasを使ってエクセルの特定セルに入力をするプログラムを紹介したいと思います。

こういう記事を書こうと思ったきっかけがどこを調べてもいまいちわかりづらいんですよね。わかりやすく書いている記事が少ない。。

なので、わかりやすく書くことを意識します。

わや

どのサイト見ても読むだけで疲れる書き方してあります。プログラマーが備忘録的に書いてある記事は特に難しいですね。

Tensorflowを使って画像認識するコードも作成しました。気になる方はご覧ください。

誰でもできる!サクッとTensorflowで画像認識する方法を解説【Python】

pandasでExcelのセルを指定して入力する方法

まずエクセルファイルを準備します。簡単に以下のようなエクセルを作ります。

準備

このファイルをpythonを実行するフォルダに保存しておきます

企業売上利益
A社10010
B社2005
C社15030

↑こんな感じのエクセルファイルを作りました。

それではさっそくどうやって入力するのかやっていきます。

B社の売上を200→2000に変更しようと思います。

iatを使う

こういうときに役立つのが、iatです。

iatは、エクセルのセルを行列の数字を指定できます

iatで入力したいセルを選択して、2000を代入します。

import pandas as pd #pandasをインポート

pd = pd.read_excel("test.xlsx") #先ほど作成したエクセルファイルを読み込みます。

pd.iat[1,1] = 2000 #B社の売上を選択して2000を代入

これでできます。めっちゃ簡単ですね。

簡単に解説

簡単に解説しますが、

ポイント

  • 1行目:pandasをインポートしています。ライブラリのインポートは必須です。
  • 2行目:pandasを使って先ほどのエクセルファイルを読み込みます。excel→csvに変えることでcsvファイルを読み込めます。
  • 3行目:iatを使ってセルを選択し、2000を代入。1行目はカラム名として読み込むのでカウントされていないところに注意です。

【発展】pandasでExcelのカラム名とインデックス名を指定してセル選択

中には、膨大な行数・列数のエクセルファイルを使っていて、数字を数えていられないという方も多いかと思います。

そういう時に役立つのが、atです。

atを使うことで、セルを数字ではなく、カラムとインデックスを文字列で指定できます。

実際に使ってみるとこんな感じです。

import pandas as pd

pd = pd.read_excel("test.xlsx",index_col = 0)

pd.at["B社","売上"] = 2000

これも簡単ですね。何が変わったのかというと、

ポイント

  • 最初のエクセルファイルの読み込みで、0列目をインデックスとして読み込み(index_col=0)
  • atのところで、数字ではなくインデックスとカラムの文字列でセルを指定

こんなことをしています。

結論:pandasでExcelのセルを指定したいなら、atやiatを使う

pandasは非常に便利なpythonのライブラリです

僕も日々勉強しながら、業務にpythonをいかしていますので、みなさんも勉強して業務を改善していきましょう。

今後も学習したことを発信しますので、良かったら見てみてください。

以下の記事では、私自身がpythonを使えるようになるために利用したUdemyのおすすめ講座をまとめています。
合わせてご確認ください。

  • この記事を書いた人

わや

大手メーカーで働く30歳研究職。機械設計やったりプログミングやったりと結構マルチタイプ エンジニア向けの情報を発信するので、記事を見て気に入ってもらえたら嬉しい。

-PYTHON