Zephyr
Zephyr

Reputation: 1352

DataFrame blank while transferring from another data frame

I am creating a new data frame using some columns from existing data frame.

 eventdata1 = pd.DataFrame({
    "competition":eventdata['competition'],
    "hometeam":eventdata['hometeam_team1'],
    "awayteam":eventdata['awayteam_team2'],
    "team":eventdata['Team Against'],
    "MatchDateTime":eventdata['matchdatetime'],
    "EventDateTime":eventdata['eventdatetime'],
    "PreviousEventDateTime":eventdata['PreviousEventTime'],
    "Goal_Flag":eventdata['Goal_Flag']},
    columns =[['competition',
    'hometeam',
    'awayteam',
    'team',
    'MatchDateTime',
    'EventDateTime',
    'PreviousEventDateTime',
    'Goal_Flag']])

It turned out all columns are blank except index column. eventdata is the existing data frame and eventadata1 is the one i am creating now. Suggestion is much appreciated. Thanks Zep.

Upvotes: 1

Views: 32

Answers (3)

jezrael
jezrael

Reputation: 863056

Use rename and then filter by subset:

columns =['competition',
    'hometeam',
    'awayteam',
    'team',
    'MatchDateTime',
    'EventDateTime',
    'PreviousEventDateTime',
    'Goal_Flag']

d = {'hometeam_team1': 'hometeam', 
     'awayteam_team2':'awayteam', 
     'Against':'team',
     'matchdatetime':'MatchDateTime',
     'eventdatetime':'EventDateTime',
     'PreviousEventTime':'PreviousEventDateTime'}
eventdata1 = eventdata.rename(columns=d)[columns]

Upvotes: 2

Mohamed Thasin ah
Mohamed Thasin ah

Reputation: 11192

you can simply do like this,

eventdata1=eventdata[['competition',
    'hometeam',
    'awayteam',
    'team',
    'MatchDateTime',
    'EventDateTime',
    'PreviousEventDateTime',
    'Goal_Flag']]

Upvotes: 1

jazib jamil
jazib jamil

Reputation: 552

Try this;

eventdata1=pd.DataFrame()
my_columns =['competition',
    'hometeam',
    'awayteam',
    'team',
    'MatchDateTime',
    'EventDateTime',
    'PreviousEventDateTime',
    'Goal_Flag']
for col in my_columns:
    eventdata1[col]=eventdata[col]

There are more elegant solution but the above certainly works. You can also try;

eventdata1=pd.DataFrame(eventdata[my_columns])

Best!

Upvotes: 1

Related Questions