【发布时间】:2019-11-29 19:17:45
【问题描述】:
我有一个df:
ID Car Jan17 Jun18 Dec18 Apr19
0 Nissan 0.0 1.7 3.7 0.0
1 Porsche 10.0 0.0 2.8 3.5
2 Golf 0.0 1.7 3.0 2.0
3 Tiguan 1.0 0.0 3.0 5.2
4 Touareg 0.0 0.0 3.0 4.2
5 Mercedes 0.0 0.0 0.0 7.2
6 Passat 0.0 3.0 0.0 0.0
我想更改第 6 行的值:Car 列中的 Passat 值,方法是将 row#2 & row#3 & row#4 (Golf, Tiguan, Touareg) 中的值添加到 Car 列中)并将 row#2 & row#3 & row#4 的值保持为初始值。
因为Passat 包含Golf, Touareg, Tiguan,因此我需要将Golf, Touareg, Tiguanrows 的值添加到Passat 行。
我尝试使用以下代码:
car_list = ['Golf', 'Tiguan', 'Touareg']
for car in car_list:
df['Car'][df['Car']==car]='Passat'
在我使用groupby by Car 和sum() 函数之后:
df1 = df.groupby(['Car'])['Jan17', 'Jun18', 'Dec18', 'Apr19'].sum().reset_index()
结果,df1 没有初始的 (Golf, Tiguan, Touareg) 行。所以,这种方式是错误的。
预期结果是df1:
ID Car Jan17 Jun18 Dec18 Apr19
0 Nissan 0.0 1.7 3.7 0.0
1 Porsche 10.0 0.0 2.8 3.5
2 Golf 0.0 1.7 3.0 2.0
3 Tiguan 1.0 0.0 3.0 5.2
4 Touareg 0.0 0.0 3.0 4.2
5 Mercedes 0.0 0.0 0.0 7.2
6 Passat 1.0 4.7 9.0 11.4
如有任何想法,我将不胜感激。谢谢)
【问题讨论】:
标签: pandas group-by sum apply concat