我有一個資料框,其中包括兩列是字典。
type possession_team
0 {'id': 35, 'name': 'Starting XI'} {'id':9101,'name':'San Diego Wave'}
1 {'id': 35, 'name': 'Starting XI'} {'id':9101,'name':'San Diego Wave'}
2 {'id': 18, 'name': 'Half Start'} {'id':9101,'name':'San Diego Wave'}
3 {'id': 18, 'name': 'Half Start'} {'id':9101,'name':'San Diego Wave'}
4 {'id': 30, 'name': 'Pass'} {'id':9101,'name':'San Diego Wave'}
我用
pd.concat([df, df['type'].apply(pd.Series)], axis = 1).drop('type', axis = 1)
在一分鐘手動拆分列。我將如何使用此代碼,但還要為其創建的結果列添加前綴?前綴是它創建的結果列的前綴,所以我會這樣做;
type_id type_name
0 35 'Starting XI'
1 35 'Starting XI'
2 18 'Half Start'
3 18 'Half Start'
4 30 'Pass'
uj5u.com熱心網友回復:
IIUC,假設有字典,你可以這樣做:
df['type_id'] = df['type'].str['id']
df['type_name'] = df['type'].str['name']
對于更通用的方法:
for c in df['type'].explode().unique():
df[f'type_{c}'] = df['type'].str[c]
甚至更通用(適用于所有列):
for col in ['type', 'possession_team']: # or df.columns
for c in df[col].explode().unique():
df[f'{col}_{c}'] = df[col].str[c]
輸出:
type possession_team \
0 {'id': 35, 'name': 'Starting XI'} {'id': 9101, 'name': 'San Diego Wave'}
1 {'id': 35, 'name': 'Starting XI'} {'id': 9101, 'name': 'San Diego Wave'}
2 {'id': 18, 'name': 'Half Start'} {'id': 9101, 'name': 'San Diego Wave'}
3 {'id': 18, 'name': 'Half Start'} {'id': 9101, 'name': 'San Diego Wave'}
4 {'id': 30, 'name': 'Pass'} {'id': 9101, 'name': 'San Diego Wave'}
type_id type_name possession_team_id possession_team_name
0 35 Starting XI 9101 San Diego Wave
1 35 Starting XI 9101 San Diego Wave
2 18 Half Start 9101 San Diego Wave
3 18 Half Start 9101 San Diego Wave
4 30 Pass 9101 San Diego Wave
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/456083.html
上一篇:僅當字串不是NA值時才連接字串
