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

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

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

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

pandas

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

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

解決済

[pandas]カラム内の値を使って、新しいカラムを作成する

sho.sho
sho.sho

総合スコア2

Python

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

pandas

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

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

1回答

0グッド

0クリップ

610閲覧

投稿2021/06/17 04:48

こんにちは!
pythonを使って、統計処理を行っている初心者です。
カラムの値を使って、新しいカラム作成とその中の値を作成しようとしています。
都道府県を区別せずに、「市」の名前が入っているカラムを使って、「都道府県」にまとめた新しいカラム(列)を作成したいです。

dataframeを使ってデータを作成し、
locを使いましたが、エラーが出てしまいました。

どのように修正すればよいか、教えていただけると嬉しいです。
どうぞよろしくお願いします。

発生している問題・エラーメッセージ

TypeError: 'Series' objects are mutable, thus they cannot be hashed

該当のソースコード

python

1df_a.loc[(df_a['市']=='大阪市','堺市'),'県']= '大阪府' 2df_a.loc[(df_a['市']=='京都市','亀岡市'),'県']= '京都府' 3

試したこと

新しいカラムに、参照したいカラム内の値(列)をコピーし、変更する形も取りましたが、うまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

可能であれば、各都道府県の市のリストを作成し、それを参照する形でカラムが作成できると嬉しいです。
(振り分けるルール作り)

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

ベストアンサー

やりたいことは、
市が大阪市か堺市なら県を大阪府にして、
市が京都市か亀岡市なら県を京都府にする、
ということでしょうか?

だとすると書き方が違っていて、次のように書きます。

python

1df_a.loc[(df_a['市'] == '大阪市') | (df_a['市'] == '堺市'), '県'] = '大阪府' 2df_a.loc[(df_a['市'] == '京都市') | (df_a['市'] == '亀岡市'), '県'] = '京都府'

isin を使うともう少し簡単に書けます。

python

1df_a.loc[df_a['市'].isin(['大阪市', '堺市']), '県'] = '大阪府' 2df_a.loc[df_a['市'].isin(['京都市', '亀岡市']), '県'] = '京都府'

投稿2021/06/17 05:41

bsdfan

総合スコア4044

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

sho.sho

2021/06/17 06:31

早速、修正したところ動作させることができました! 解答いただきありがとうございました! また、是非よろしくお願いいたします!

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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

pandas

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

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。