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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

1回答

1062閲覧

pythonエクセルの上書き保存について

fideo

総合スコア55

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2021/12/20 02:09

実現したい内容
pandasで実行する度にエクセルの行を追加したいです。
例3回目実行した場合

A B C 0 鈴木次郎 男 23 1 鈴木次郎 男 23 2 鈴木次郎 男 23

下記の方法でエクセルの行に値を追加しています。
ただ毎回上書き保存されますので、実現したい内容と違います。

 現在結果

A B C 0 鈴木次郎 男 23

最初の#xlsx書き出しをコメントアウトすると実現したい内容できますが、
毎回それを行うのは効率良くない為、一つのプログラムで完結できますでしょうか。
他の別プロフラムで最初エクセルのヘッダーを作成して実行することも考えてみましたが
やはり一つのプログラムで完結できるようにしたいです。

お手数ですが、教授をお願い致します。

# coding:utf-8 import pandas as pd #ファイル名 filename="C:\Users\test\Documents\test\test.xlsx" #Header作成 col = ["A","B","C"] #dataframe作成 df = pd.DataFrame(columns=col) #xlsx書き出し df.to_excel(filename, sheet_name="TEST", index=False, header=True) #ファイル読み込み df_sample = pd.read_excel(filename) print(df_sample) #dataframe作成 data = {'A' : '鈴木次郎', 'B' : '男', 'C' : 23} #新しい行に追加 df_new = df_sample.append(data, ignore_index=True) #xlsx書き出し df_new.to_excel(filename, sheet_name="TEST", index=False, header=True)

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

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

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

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

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

guest

回答1

0

以下のようにC:\Users\test\Documents\test\test.xlsxが存在するかどうかを確認し、なければヘッダを作れば良いでしょう。

python

1try: 2 df_sample = pd.read_excel(filename) 3except FileNotFoundError: 4 col = ["A","B","C"] 5 df_sample = pd.DataFrame(columns=col) 6data = {'A' : '鈴木次郎', 'B' : '男', 'C' : 23} 7df_new = df_sample.append(data, ignore_index=True) 8df_new.to_excel(filename, sheet_name="TEST", index=False, header=True)

投稿2021/12/20 02:32

ppaul

総合スコア24670

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

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

fideo

2021/12/20 02:56

回答ありがとうございます。 上記の方法で問題なくできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問