【发布时间】:2022-12-01 16:52:31
【问题描述】:
我想修改熊猫中的分组数据。我写了一个不起作用的简码。不幸的是,当我使用gr.get_group('Audi')时,在循环之外,数据保持不变。如何修改分组的 daraframes 以及如何稍后从分组数据返回到 dataframes。
import pandas as pd
import numpy as np
d = {'car' : ["Audi", "Audi", "Audi", "BMW", "BMW", "BMW", "FIAT", "FIAT", "FIAT", "FIAT"],
'year' : [2000, 2001, 1995, 1992, 2003, 2003, 2011, 1982, 1997, 2002]}
df = pd.DataFrame.from_dict(d)
df['new'] = np.nan
gr = df.groupby('car')
for key, val in gr:
val.loc[val['year']<2000, 'new'] = f'new {key}'
gr.get_group('car')
我想使用这种方法,因为在每个数据框中我想使用不同的方法来设置 new 列
例如,对于奥迪,它通常会添加一个变量,而对于宝马,我想使用地图功能
for key, val in gr:
if key == 'Audi':
val.loc[val['year']<2000, 'new'] = f'new {key}'
elif key == 'BMW':
pass
# here another method
elif key == 'FIAT'
# here another metod
else:
val.loc[val['year']<2000, 'new'] = 'UNKNOW'
最后我想得到一个像数据框一样的表,但有填充的列`new
【问题讨论】: