Reputation: 1352
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
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
Reputation: 11192
you can simply do like this,
eventdata1=eventdata[['competition',
'hometeam',
'awayteam',
'team',
'MatchDateTime',
'EventDateTime',
'PreviousEventDateTime',
'Goal_Flag']]
Upvotes: 1
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