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

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

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

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

pandas

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

Q&A

解決済

3回答

17464閲覧

pandasの特定列で全ての列を割り算したい

hidemomo

総合スコア31

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2020/03/17 13:08

dataframeのある列で残りの全列を一気に割り算をしたいのですが方法がわかりません。

###DataFrame
df=下表
e列で、a列からd列のすべてを割り算する
|id|a|b|c|d|e|
|:--|:--:|--:|
|0|20|30|40|50|5
|1|10|120|60|30|2
|2|20|20|15|30|3

試行したこと

lamda関数とapplymapを使用したのですが数値が異なります。

python

1function = lambda x: x / df['e'] 2df_ = df.applymap(function)

1つずつ列を指定して、e列で割り算することは可能なのですが100列以上ありますので一気に割り算したいです。

ご教示のほど、よろしくお願いします。

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

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

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

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

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

guest

回答3

0

python

1for i in df.columns: 2 if i != 'e' and i != 'id': 3 df[i] = df[i] / df['e']

投稿2020/03/17 13:25

meg_

総合スコア10580

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

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

hidemomo

2020/03/17 14:00 編集

ご回答ありがとうございました。 今回はlamdaを使いたく、かつ最初に回答いただいた方にベストアンサーをつけさせていただきました。また、ご教示いただければ幸いです。
guest

0

もっとスマートなやり方があるはずですが、とりあえず以下でもできます。

Python

1import pandas as pd 2 3df = pd.DataFrame({'a':[20,10], 'b':[30,120],'e':[5,2]}) 4for c in df.columns: 5 if c != 'e': 6 df[c] = df[c]/df['e'] 7print(df)

投稿2020/03/17 13:24

can110

総合スコア38266

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

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

hidemomo

2020/03/17 13:58

ご回答ありがとうございました。 確かに、for分で対応可能ですね! 今回はlamdaを使いたく、かつ最初に回答いただいた方にベストアンサーをつけさせていただきました。また、ご教示いただければ幸いです。
guest

0

ベストアンサー

py:

1df.loc[:, ["a", "b", "c", "d"]] = df.loc[:, ["a", "b", "c", "d"]].apply(lambda x: x / df["e"])

とすればできると思います.

投稿2020/03/17 13:19

編集2020/03/17 16:52
dark-eater-kei

総合スコア1248

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

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

hidemomo

2020/03/17 13:59

大変ありがとうございました。挙動確認しました。このようにlambdaを使うのですね。大変勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問