###前提・実現したいこと
Pandasの 各要素の演算方法ついて質問です。
例えばこんなデータフレームがあるとします。
//Test hoge factors sample1 1 1 sample2 1 1 sample3 2 3
//Dictionary factor1 factor2 cat 1 2 dog 3 4
データフレーム:Testの列:factorsの値をデータフレーム:Dictionaryの要素と照らし合わせて
catかdogかを判定した後に, このデータフレームの末尾にresultという
列名をつけて追加したいと思います。
アウトプットイメージとしては次のとおりです。
hoge factors result sample1 1 1 cat sample2 1 1 cat sample3 2 3 dog
「試したこと」の欄のようにapplyを使って書いてみましたが、
うまく行きません。
上手いを教えていただければと思います。
###発生している問題・エラーメッセージ
なし
###試したこと
applyを使って下のように書いてみましたが,
色々調べてみると applyはSeriesごとの計算しか出来ないみたいです。
(間違ってたらすみません)
python
1import pandas as pd 2 3# 辞書として使うデータフレームを定義する 4df_dict= pd.DataFrame( data=[[1,2],[3,4]], index = ['cat','dog'],columns=['factor1','factor2']).stack() 5 6# 判定用のデータを用意する 7df_test = pd.DataFrame(data=[[1,1],[1,1],[2,3]], index = ['sample1','sample2','sample3'],columns=['hoge','factors']) 8 9# 判定するための関数を定義 10def ident(valu): 11 spec = list(df_dict[df_dict == valu].index) 12 return spec[0][0] 13 14# 判定する 15df_test['result'] = df_test.apply(### ここの書き方が分からないので思ったことが出来ない? ###)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/27 21:03