用具有相同属性的值(如weekday和hour)填充数据帧中的NaN

2024-04-18 04:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在一周中的同一时间和同一天用其他数据帧的平均值替换数据帧的nan。你知道吗

例如,我有几个从星期三晚上11点到星期四上午10点的南。月份不重要,只有小时和工作日。 我所做的是创建另一个数据帧调用:

数据分组=数据框groupby([“工作日”,“小时]).mean()

既然我有了这个数据帧,我如何将它与df.isnull()? 你知道吗

有没有更直接的方法?你知道吗

提前谢谢。你知道吗


Tags: 数据方法dfnanmean平均值小时groupby
1条回答
网友
1楼 · 发布于 2024-04-18 04:07:14

这是我对你问题的理解。你知道吗

sample = {'Activa': {0: np.nan, 1: 328.76750000000004}, 'Aparente': {0: np.nan, 1: 332.28750000000002}, 'Building': {0: 'Quimica', 1: 'Quimica'}, 'Hour': {0: 13, 1: 14}, 'Month': {0: 'Jun', 1: 'Jun'}, 'Month_num': {0: 6, 1: 6}, 'Reactiva': {0: -70.599999999999994, 1: -46.682500000000005}, 'Timestamp': {0: pd.to_datetime('2012-06-01 13:00:00'), 1: pd.to_datetime('2012-06-01 14:00:00')}, 'Week': {0: 22, 1: 22}, 'Weekday': {0: 'Fri', 1: 'Fri'}, 'Weekday_num': {0: 4, 1: 4}, 'Year': {0: 2012, 1: 2012}}
# There is a nan value in the activa column
df = DataFrame(sample)
# Performing the groupby as you do
df_grouped = df.groupby(['Week','Weekday']).mean()
# Setting the same index on the original DataFrame
df = df.set_index(['Week','Weekday'])
# Filling nan values with the mean
df = df.fillna(df_grouped)
df

# The result
                Activa  Aparente Building  Hour Month  Month_num  Reactiva  \
Week Weekday                                                                 
22   Fri      328.7675  332.2875  Quimica    13   Jun          6  -70.6000   
     Fri      328.7675  332.2875  Quimica    14   Jun          6  -46.6825   

                       Timestamp  Weekday_num  
Week Weekday                                   
22   Fri     2012-06-01 13:00:00            4  
     Fri     2012-06-01 14:00:00            4 

相关问题 更多 >