简体   繁体   中英

How do you fill uneven pandas dataframe column with first value in column

import pandas as pd

dict = {'Name' : ['John'], 'Last Name': ['Smith'], 'Activity':['Run', 'Jump', 'Hide', 'Swim', 'Eat', 'Sleep']}

df = pd.DataFrame(dict)

How do I make it so 'John' & 'Smith' are populated in each 'Activity' that he does in a dataframe?

Let us try json_normalize

out = pd.json_normalize(d,'Activity',['Name','Last Name'])
Out[160]: 
       0  Name Last Name
0    Run  John     Smith
1   Jump  John     Smith
2   Hide  John     Smith
3   Swim  John     Smith
4    Eat  John     Smith
5  Sleep  John     Smith

Input

d = {'Name' : ['John'], 'Last Name': ['Smith'], 'Activity':['Run', 'Jump', 'Hide', 'Swim', 'Eat', 'Sleep']}

If you strictly have one pair of Name/Last Name, you can modify the dictionary so that pandas reads activity as a list

d = {k: [v] if len(v) > 1 else v for k, v in d.items()}
df = pd.DataFrame(d)
df.explode('Activity')

    Name    Last Name   Activity
0   John    Smith       Run
0   John    Smith       Jump
0   John    Smith       Hide
0   John    Smith       Swim
0   John    Smith       Eat
0   John    Smith       Sleep

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM