use*_*538 2 python series dataframe pandas pandas-groupby
我有一个datafarme,如下所示(有更多列已被删除):
memberID shipping_country
264991
264991 Canada
100 USA
5000
5000 UK
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用每个用户的运输国家/地区的现有值填充空白单元格:
memberID shipping_country
264991 Canada
264991 Canada
100 USA
5000 UK
5000 UK
Run Code Online (Sandbox Code Playgroud)
但是,我不确定在大规模数据集上执行此操作的最有效方法是什么.也许,使用矢量groupby方法?
你可以使用GroupBy+ ffill/ bfill:
def filler(x):
return x.ffill().bfill()
res = df.groupby('memberID')['shipping_country'].apply(filler)
Run Code Online (Sandbox Code Playgroud)
自定义函数是必要的,因为没有组合的Pandas方法ffill和bfill顺序.
这也适用于所有价值都是NaN特定的情况memberID; 在这种情况下,他们将保持NaN.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |