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

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

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

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

pandas

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

Q&A

解決済

2回答

4843閲覧

【Python】 pandasで、csvファイルの特定セル値だけを書き換えたい。

yujin1202

総合スコア56

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2021/08/03 15:28

編集2021/08/03 15:49

業務システムを、Python,Pandas,openpyxlで作成しておりますが、Panadsを使ったcsvファイルへの書き込みで詰まっております。
教えて頂きたく。

1. 状況説明
何が問題なのか?を絞り込んだので、この参考サイトの例を使って、質問致します。

下記の様なCSVファイルがあります。

<sample.csv>
name age state point
Alice 24 NY 64
Bob 42 CA 92
Charlie 18 CA 70
Dave 68 TX 70
Ellen 24 CA 88
Frank 30 NY 57

下記の様なコードを書けば、下記の様に表示されます。

import pandas as pd df = pd.read_csv('sample.csv') print(df) # name age state point # 0 Alice 24 NY 64 # 1 Bob 42 CA 92 # 2 Charlie 18 CA 70 # 3 Dave 68 TX 70 # 4 Ellen 24 CA 88 # 5 Frank 30 NY 57コード

2.御質問
上記の例では、Aliceの年齢は、24となっておりますが、pandasを使って、例えば、50に書き換える事はできるのでしょうか?
「0行目の"age”を、24から50に書き換えろ!」と言うコードになると思うのですが、上記の「参考サイト」にもその書き方が記載されておりません。
そもそも、pandasでは出来ないのでしょうか? (openpyxlでやるしかないのでしょうか?)
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

python

1import io 2data="""name age state point 3Alice 24 NY 64 4Bob 42 CA 92 5Charlie 18 CA 70 6Dave 68 TX 70 7Ellen 24 CA 88 8Frank 30 NY 57""" 9 10ddf = pd.read_csv(io.StringIO(data),sep='\s+') 11print(ddf) 12 13print('0行目のageは',ddf['age'][0]) 14 15""" 16 name age state point 170 Alice 24 NY 64 181 Bob 42 CA 92 192 Charlie 18 CA 70 203 Dave 68 TX 70 214 Ellen 24 CA 88 225 Frank 30 NY 57 230行目のageは 24 24 25"""

Pandas User guide #Setting

リンクは本家です。アクセスの仕方はこんな感じでもできますので、いろいろと試してみてください。

投稿2021/08/03 20:54

toshikawa

総合スコア388

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

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

yujin1202

2021/08/04 14:28

解決しました。ありがとうございました。
guest

0

ベストアンサー

上記の例では、Aliceの年齢は、24となっておりますが、pandasを使って、例えば、50に書き換える事はできるのでしょうか?

出来ます。質問者さんが引用されたサイトにも下記説明ページがありますのでご確認ください。

pandasで任意の位置の値を取得・変更するat, iat, loc, iloc

投稿2021/08/03 18:47

meg_

総合スコア10607

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

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

yujin1202

2021/08/04 14:16

早速、ありがとうございます。 御指摘の通り、下記の様に書くと、Aliceの年齢を50に書き換えられる事を確認しました。 <test.py> =================== import pandas as pd df = pd.read_csv('sample.csv') df.at[0,'age']=50 print(df) ============ ================== C:\Users\user_xxx\Desktop\lineopen>python test.py name age state point 0 Alice 50 NY 64 1 Bob 42 CA 92 2 Charlie 18 CA 70 3 Dave 68 TX 70 4 Ellen 24 CA 88 5 Frank 30 NY 57 =================== 引き続きの御質問で恐縮ですが、確かにCMD上では上記の様に変更できたのですが、この変更をcsvファイルに反映するにはどうしたらよいのでしょうか?(csvファイルは変更前の24歳のままです。) 基本的な事で申し訳ないです。
yujin1202

2021/08/04 14:20

ごめんなさい。上記の追加質問ですが、別記事で解決しそうです。失礼しました。もう少し、自分で頑張ってみます。
yujin1202

2021/08/04 14:28

解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問