🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

Q&A

解決済

1回答

5936閲覧

複数条件に合致する行の特定の列の値を置換したい

yamahisa

総合スコア10

Python 3.x

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

0グッド

0クリップ

投稿2021/01/05 12:42

編集2021/01/05 12:44

【やりたいこと】

 dataframe形式のデータに対して、
複数条件に合致する行の特定列に数値を代入したい

【わからないこと】

2行目と3行目のC列の数値を10に置換したいのですが、数値が代入できません。

Python

1import pandas as pd 2 3test = pd.DataFrame({"a": [3,1,3,5,3], 4 "b": [5,6,7,8,7], 5 "c": [10,11,12,13,12]}) 6 7test.loc[(test["a"] == 3) & (test["b"] == 7)]["c"] = 10 8test

OUT

1 2 a b c 30 3 5 10 41 1 6 11 52 3 7 12 63 5 8 13 74 3 7 12

【やったこと】

下記で1行目と3行目のC列が選択できているところまでは確認できました。
置換したい場所が特定できているのに数値を置換できないです。

Python

1import pandas as pd 2 3test = pd.DataFrame({"a": [3,1,3,5,3], 4 "b": [5,6,7,8,7], 5 "c": [10,11,12,13,12]}) 6 7test.loc[(test["a"] == 3) & (test["b"] == 7)]["c"] 8test

お忙しいところ恐縮ですが押していただけると助かります。
宜しくお願い致します。

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

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

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

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

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

meg_

2021/01/05 13:35

> 2行目と3行目のC列の数値を10に置換したい コードでは特定の列からデータを条件抽出していますが、上記文章では行数で指定しています。本当にやりたいことはどっちでしょうか?
yamahisa

2021/01/06 12:30

>> 2行目と3行目のC列の数値を10に置換したい ではなく、正しくは、 『2行目と4行目のC列の数値を10に置換したい』です。 間違って投稿してしまい申し訳ありません。
guest

回答1

0

ベストアンサー

python

1 2import pandas as pd 3 4test = pd.DataFrame({"a": [3,1,3,5,3], 5 "b": [5,6,7,8,7], 6 "c": [10,11,12,13,12]}) 7 8# ファンシーインデックスによるコピーに代入しているので元の値は変わらない 9# test.loc[(test["a"] == 3) & (test["b"] == 7)]["c"] = 10 10 11# 元のデータにアクセスしている(ビュー)ので変更が可能 12test.loc[(test["a"] == 3) & (test["b"] == 7), "c"] = 10

投稿2021/01/05 13:13

ko_ya346

総合スコア15

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

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

yamahisa

2021/01/06 13:12

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問