pandasは、既存の列に基づいて新しい列を追加します

プロジェクトの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は、元のデータフレームの行が変更されず、列の次元が変更されたことを意味します。

おすすめ

転載: blog.csdn.net/bitcarmanlee/article/details/113193004