当值与另一列匹配时回填 Pandas 系列中的值

2023-12-04

我有一个像这样的数据框:

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(使用前将#替换为@)

当值与另一列匹配时回填 Pandas 系列中的值 的相关文章

随机推荐