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

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

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

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

Q&A

解決済

1回答

904閲覧

2つのデータフレーム間の数字を格納する方法

shunsuke1937

総合スコア48

Python 3.x

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

0グッド

0クリップ

投稿2018/12/13 13:08

二つのデータフレーム間で対応した数字をデータフレームとして
取り出したいと考えております。

下記のように
frame1とframe2の二つのデータフレームがあります。

python

1import pandas as pd 2data1={'出席番号':[4,1,5]} 3frame1=pd.DataFrame(data1,columns=['出席番号'],index=[1,2,3]) 4frame1.index.name='コース' 5#コース  出席番号  6#1 4 7#2 1 8#3 5 9 10data2={'1コースポイント':[1.5,1.6,5.9,7.9,4.5], 11 '2コースポイント':[3.5,1.2,7.8,1.1,1.7], 12 '3コースポイント':[3.5,1.2,7.8,1.1,1.7]} 13frame2=pd.DataFrame(data2,columns=['1コースポイント','2コースポイント','3コースポイント'],index=[1,2,3,4,5]) 14frame2.index.name='出席番号' 15 16#出席番号 1コースポイント 2コースポイント 3コースポイント 17#1 1.5 3.5 3.5 18#2 1.6 1.2 1.2 19#3 5.9 7.8 7.8 20#4 7.9 1.1 1.1 21#5 4.5 1.7 1.7 22

このframe2の出席番号からコースポイントを取り出して
frame1に格納したいと考えております。
希望する出力結果は下記になります。
ご確認のほどよろしくお願いいたします。

python

1#コース  出席番号  コースポイント 2#1 4 7.9 3#2 1 3.5 4#3 5 1.7

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

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

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

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

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

guest

回答1

0

ベストアンサー

frame2に対して、DataFrame.stack() を行い変換用のテーブルを作成しておくことで、簡単に変換できるかと思います。

Python

1import pandas as pd 2 3data1={'出席番号':[4,1,5]} 4frame1=pd.DataFrame(data1,columns=['出席番号'],index=[1,2,3]) 5frame1.index.name='コース' 6 7data2={'1コースポイント':[1.5,1.6,5.9,7.9,4.5], 8 '2コースポイント':[3.5,1.2,7.8,1.1,1.7], 9 '3コースポイント':[3.5,1.2,7.8,1.1,1.7]} 10frame2=pd.DataFrame(data2,columns=['1コースポイント','2コースポイント','3コースポイント'],index=[1,2,3,4,5]) 11frame2.index.name='出席番号' 12 13# -------------------------------------- 14 15# 変換用テーブルを作成 16conv = frame2.rename(columns=lambda col:int(col[0])).stack() 17frame1['コースポイント'] = frame1.apply(lambda row:conv[row['出席番号'],row.name], axis=1) 18 19print(frame1) 20# 出席番号 コースポイント 21#コース 22#1 4 7.9 23#2 1 3.5 24#3 5 1.7

投稿2018/12/13 23:17

magichan

総合スコア15898

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問