初学者で、以下のようなデータで範囲を指定し、
カラム名を表示し、集団のTOP3の値を表示するプログラムを考えています。
処理前から処理後を抽出する方法はないかと思い、質問させていただきます。
【処理前】:入力イメージ
|A|B|C|D|E|F|G|H|I|J|
|:--|:--:|--:|
|1|2|3|4|5|6|7|8|9|10|
|8|4|5|1|3|2|7|6|10|9|
|7|5|9|10|2|6|1|8|3|4|
|2|4|6|8|10|1|3|5|9|7|
①10個の同じ要素の比較を行います。(値は乱数です。またこれらは行内で同じ値はないものとします。)
値の大きい順に3個の要素を取り出します。(※)
A | B | C |
---|---|---|
10 | 9 | 8 |
I | J | A |
---|---|---|
10 | 9 | 8 |
D | C | H |
---|---|---|
10 | 9 | 8 |
E | I | D |
---|---|---|
10 | 9 | 8 |
②値の大きい順にカラム名を'1st','2nd','3rd'としてそれぞれを表します。
【処理後】
1st | 2nd | 3rd |
---|---|---|
10 | 9 | 8 |
10 | 9 | 8 |
10 | 9 | 8 |
10 | 9 | 8 |
試したこと
--変更前のコード import numpy as np import pandas as pd --ここで乱数を生成 r = np.random.randint(10, size=(10, 5)) df = pd.DataFrame(r) --最大値からN個抽出(②の一部です。) N = 3 top = df.loc[0, :].nlargest(N) top3 = df.loc[:,top.index]
入力以降で、カラム名を変更することを考えております(入力後はどのタイミングでも良いです。)
カラム名をRenameは、
df_new = df.rename(columns={'A': 'a'}, inplace=True)
のように変更できることは、調べてわかったのですが、
【処理前】のどの列の要素がどのような値になるかがわからず、
【処理後】のような表を得るのに良い方法がないかと質問させていただいた次第です。
拙い質問で申し訳ありませんが、ご教示いただければと思います。
よろしくお願い致します。
補助情報
Pythonは3.5.4を使用しています。
Pandasは0.21.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/21 05:26
2017/11/21 05:30
2017/11/21 05:43
2017/11/21 12:29
2017/11/21 13:25