最初のデータフレームのいくつかの条件に基づいて、別のデータフレームの異なるカラムから値を選択してデータフレームに新しいカラムを作成する方法はありますか?私はラムダ関数を適用使って試してみましたが、それは私に条件付きで他のデータフレームのデータに基づいてカラム値を選択します
KeyError: ('Country', u'occurred at index Country')
を与える
df = pd.DataFrame(
[['USA', 1992, 20]
['China', 1993, 15]
['Japan', 1994, 40]],
columns = ['Country', 'year', 'score'])
:
私のデータセットは、このようなものです:
df1 = pd.DataFrame(
[['USA', 1992],
['China', 1993],
['Japan', 1994]],
columns = ['Country', 'year'])
scores = pd.DataFrame(
[['USA', 20, 30, 40],
['China', 5, 15, 30],
['Japan', 30, 50, 40],
['Korea', 10, 15, 20],
['France', 10, 12, 15]],
columns = ['Country', 1992, 1993, 1994])
そして、私の希望のデータセットは以下のようになります
私が試したラインは:
df1['score'] = df.apply(lambda x: scores[scores['Country'] == x['Country']][x['year']][1])
ありがとうございます!
条件は何ですか。どのようにそれらを選択したいですか?あなたのコードが機能していないので、あなたのコードからそれを理解することはできません。 – ayhan
@ayhan前回の編集ではスコアデータフレームが欠けていたと思うので、混乱の原因となります。私はdf1の年の列に基づいてdf1に新しいスコア列を追加しようとしていました。ありがとう –
ああ、ごめんなさい。 – ayhan