Assignment a values to columns inside df.apply()

I need to assign multiple values to multiple columns inside a pandas.DataFrame. What I want to do looks like that:

df.apply(
    lambda x: x['card_{}'.format(card)] = score 
    for card, score in zip(
            x['card_id'].split('|'),
            x['score_id'].split('|')
        ),
     axis=1
)

How can I do it without looping on card_id numbers?

Upvotes: 0

Views: 45

Answers (1)

Ynjxsjmh
Ynjxsjmh

Reputation: 29982

You can create a function

def assign_card(row):
    for card, score in zip(x['card_id'].split('|'),
                           x['score_id'].split('|')):
        row['card_{}'.format(card)] = score
    return row

df = df.apply(assign_card, axis=1)

Upvotes: 0

Related Questions