【发布时间】:2018-09-26 18:18:33
【问题描述】:
我希望根据某些列的相应类别创建特定类别的列。
我通过 (1) 将 2 个类别分割成两个单独的数据框,(2) 在日期合并两个数据框 (3) 删除冗余列 (4) 创建新列 (类别不可知)(4)删除类别特定列。您知道进行这种转换的更有效方法吗?我的代码在示例输入/输出下方
输入:
wk start car rims color Autopilot$ Sunroof$
0 2018-09-09 tesla model x 17 black 3000 0
1 2018-09-16 tesla model x 14 yellow 3000 0
2 2018-09-23 tesla model x 13 white 3000 0
3 2018-09-09 tesla model 3 19 grey 0 2000
4 2018-09-16 tesla model 3 21 pink 0 2000
理想输出:
wk rims-mod3 rims-modx color-mod3 color-modx Auto$ roof$
0 2018-09-09 17 0 black grey 3000 2000
1 2018-09-16 14 19 yellow pink 3000 2000
2 2018-09-23 13 21 white NaN 3000 0
我的代码:
import pandas as pd
df = pd.DataFrame({'wk start': ['2018-09-09', '2018-09-16', '2018-09-23','2018-09-09', '2018-09-16'],
'car': [ 'tesla model x', 'tesla model x', 'tesla model x','tesla model 3','tesla model 3'],
'rims': [17,14,13,19,21],
'color':['black','yellow','white','grey','pink'],
'Autopilot$':[3000,3000, 3000,0,0],
'Sunroof$':[0,0,0,2000,2000]})
model3 = df[df['car']=='tesla model 3']
modelx = df[df['car']=='tesla model x']
example = model3.merge(modelx, how='outer',left_on='wk start',right_on='wk start',suffixes=('_model3', '_modelx'))
del example['car_model3']
del example['car_modelx']
example['AUTOPILOT']=example['Autopilot$_model3']+example['Autopilot$_modelx']
example['SUNROOF']=example['Sunroof$_model3']+example['Sunroof$_modelx']
del example['Autopilot$_model3']
del example['Autopilot$_modelx']
del example['Sunroof$_modelx']
del example['Sunroof$_model3']
【问题讨论】: