Skip to main content
 首页 » 编程设计

Python3 pandas 数据框使用 fillna(方法 ='bfill')和分组依据

2025年05月04日21luoye11

我是 python 和 pandas 的新手,坚持下面提到的请求 将 python pandas 数据框中的数据作为

time_stamp        dish_id  table_no order_id 
2017-10-05 22:11   122       A1  
2017-10-05 22:14   127       A1  
2017-10-05 22:17   129       A5  
2017-10-05 22:19   122       A1      X_001 
2017-10-05 22:17   129       A5      X_002 

我正在用

填写缺失的订单值
output_sort[['new_order_id']] = output_sort[['order_id']].fillna(method='bfill') 

这让我得到了这样的结果

time_stamp        dish_id  table_no order_id 
2017-10-05 22:11   122       A1      X_001 
2017-10-05 22:14   127       A1      X_001 
2017-10-05 22:17   129       A5      X_001 
2017-10-05 22:19   122       A1      X_001 
2017-10-05 22:17   129       A5      X_002 

但是我想得到这样的结果

time_stamp        dish_id  table_no order_id 
2017-10-05 22:11   122       A1      X_001 
2017-10-05 22:14   127       A1      X_001 
2017-10-05 22:17   129       A5      X_002 
2017-10-05 22:19   122       A1      X_001 
2017-10-05 22:17   129       A5      X_002 

order_id 与 correct_table 没有匹配 我还没找到办法 任何帮助将不胜感激

请您参考如下方法:

df.groupby('table_no')['order_id'].apply(lambda x :x.ffill().bfill()) 
Out[529]:  
0    X_001 
1    X_001 
2    X_002 
3    X_001 
4    X_002 
Name: order_id, dtype: object 
 
df['order_id']=df.groupby('table_no')['order_id'].apply(lambda x :x.ffill().bfill()) 
df 
Out[530]:  
        time_stamp  dish_id table_no order_id 
0  2017-10-0522:11      122       A1    X_001 
1  2017-10-0522:14      127       A1    X_001 
2  2017-10-0522:17      129       A5    X_002 
3  2017-10-0522:19      122       A1    X_001 
4  2017-10-0522:17      129       A5    X_002