我有一个像这样的数据框:
import numpy as np
raw_data = {'surface': [np.nan, np.nan, 'round', 'square'],
'city': ['San Francisco', 'Miami', 'San Francisco', 'Miami']}
df = pd.DataFrame(raw_data, columns = ['surface', 'city'])
这看起来像这样:
surface city
0 NaN San Francisco
1 NaN Miami
2 round San Francisco
3 square Miami
我需要将旧金山行的最早实例填充为“圆形”,并将较早的迈阿密行填充为“方形”。使用 .fillna(method='bfill') 不会考虑其他列值,而只是用舍入填充所有较早的行。
结果将是:
surface city
0 round San Francisco
1 square Miami
2 round San Francisco
3 square Miami
您可以使用groupby.bfill
;数据框分组依据city列,然后使用bfill
:
df.groupby('city').bfill()
# surface city
#0 round San Francisco
#1 square Miami
#2 round San Francisco
#3 square Miami
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)