0

我有一个名为 train 的数据框,包含以下列: 行数约为 9800

  business_code cust_number       name_customer clear_date  buisness_year  
0          U001  0200769623        WAL-MAR corp 2020-02-11         2020.0   
1          U001  0200980828              BEN E  2019-08-08         2019.0   
2          U001  0200792734          MDV/ trust 2019-12-30         2019.0   
4          U001  0200769623  WAL-MAR foundation 2019-11-25         2019.0   
5          CA02  0140106181    THE  corporation 2019-12-04         2019.0   

         doc_id posting_date due_in_date baseline_create_date  
0  1.930438e+09   2020-01-26  2020-02-10           2020-01-26   
1  1.929646e+09   2019-07-22  2019-08-11           2019-07-22   
2  1.929874e+09   2019-09-14  2019-09-29           2019-09-14   
4  1.930148e+09   2019-11-13  2019-11-28           2019-11-13   
5  2.960581e+09   2019-09-20  2019-10-04           2019-09-24   

  cust_payment_terms converted_usd  
0               NAH4      54273.28  
1               NAD1       79656.6  
2               NAA8       2253.86  
4               NAH4      33133.29  
5               CA10     15558.088   

我们在 pandas 中使用 groupby 来做这样的事情:

dt=train.groupby('name_customer')['delay'].mean(numeric_only=False)

当我们打印 dt 时,我们会输出如下内容:

name_customer
11078 us                17.0
17135 associates       -10.0
17135 llc               -3.0
236008 associates       -3.0
99 CE                    2.0
                        ... 
YEN BROS corp            0.0
YEN BROS corporation    -0.5
YEN BROS llc            -2.0
ZARCO co                -1.0
ZIYAD  us                6.0
Name: delay, Length: 3889, dtype: float64

有没有办法从 dt 数据帧的第二行中提取平均平均值并将其添加到训练数据集中?我对 csv 和数据帧相当陌生,如果这听起来很愚蠢,我很抱歉。

4

1 回答 1

-1
df['avg_delay']=np.arange(df.shape[0])
a=df.groupby('name_customer')['Delay'].mean(numeric_only=False)


df.avg_delay=a

df.avg_delay

avg_delay 大约有 47000 行,a 有 4152 行

在输出中,我们看到开始和结束的 nan 或 null 值#但是在我们之间有我们的值

于 2022-02-21T19:13:03.133 回答