プロジェクトのgithubアドレス:bitcarmanlee easy-algorithm-interview-and-practiceには、
多くの場合、学生にプライベートメッセージを送信したり、関連する質問をするためのメッセージを残したりします。V番号bitcarmanlee。githubのスターのクラスメートは、私の能力と時間の範囲内で、あなたが関連する質問に答え、一緒に進歩するのを助けるために最善を尽くします。
パンダのデータフレームの場合、列の1つに基づいて新しい列を作成する必要があることがよくあります。たとえば、一般的な例:スコアに基づいてレベル範囲を決定する必要があります。それを実現する方法を見てみましょう。 。
def getlevel(score):
if score < 60:
return "bad"
elif score < 80:
return "mid"
else:
return "good"
def test():
data = {'name': ['lili', 'lucy', 'tracy', 'tony', 'mike'],
'score': [85, 61, 75, 49, 90]
}
df = pd.DataFrame(data=data)
# 两种方式都可以
# df['level'] = df.apply(lambda x: getlevel(x['score']), axis=1)
df['level'] = df.apply(lambda x: getlevel(x.score), axis=1)
print(df)
上記のコードを実行した結果
name score level
0 lili 85 good
1 lucy 61 mid
2 tracy 75 mid
3 tony 49 bad
4 mike 90 good
上記の機能を実現するために、主にデータフレームのapplyメソッドが使用されます。
上記のコードでは、levelという名前の新しい列がデータフレームに追加されています。レベルはスコア列から取得されます。60未満の場合は不良、60〜80は中程度、80を超える場合は良好です。
ここで、axis = 1は、元のデータフレームの行が変更されず、列の次元が変更されたことを意味します。