Python 熊猫填充列';a';使用列'中直接前后的单元格平均值;b';

Python 熊猫填充列';a';使用列'中直接前后的单元格平均值;b';,python,pandas,cell,average,Python,Pandas,Cell,Average,我有一个时间序列数据集,其中GPS每隔一秒就会丢失一次 我希望使用熊猫来填补这些缺失值,直接使用GPS的平均值前后的数据差距 在下面的示例中,这将导致在“时间戳”“06:41:59”处填充“AV_纬度”和“AV_经度”列,并在其前后直接填充位置的平均值 如果“AV”列中的所有单元格都使用与我将使用“fillna”合并缺少的数据值相同的方法填充,这不是问题 任何帮助都将不胜感激 熊猫有一种处理NaN值的方法,.fillna。在其他方法中,它支持“向前填充”和“向后填充”,这两种方法的组合将提供所

我有一个时间序列数据集,其中GPS每隔一秒就会丢失一次

我希望使用熊猫来填补这些缺失值,直接使用GPS的平均值前后的数据差距

在下面的示例中,这将导致在“时间戳”“06:41:59”处填充“AV_纬度”和“AV_经度”列,并在其前后直接填充位置的平均值

如果“AV”列中的所有单元格都使用与我将使用“fillna”合并缺少的数据值相同的方法填充,这不是问题


任何帮助都将不胜感激

熊猫有一种处理
NaN
值的方法,
.fillna
。在其他方法中,它支持“向前填充”和“向后填充”,这两种方法的组合将提供所需的结果

df[['lat', 'long']] = (
    df[['lat', 'long']].fillna(method='ffill') 
    + df[['lat', 'long']].fillna(method='backfill')
) / 2

作为奖励,这还将处理多个连续的
NaN
s

熊猫有一种方法来处理
NaN
值,
.fillna
。在其他方法中,它支持“向前填充”和“向后填充”,这两种方法的组合将提供所需的结果

df[['lat', 'long']] = (
    df[['lat', 'long']].fillna(method='ffill') 
    + df[['lat', 'long']].fillna(method='backfill')
) / 2

作为奖励,这还将处理多个连续的
NaN
s

我不确定您真正想做的是将
表示为
,还是实际想做的是重新采样数据。一般来说,后者将是一项更为常见的任务。以下是我使用的输入数据:

df = pd.DataFrame({'timestamp': {0: '6/16/2020 6:41:58', 1: '6/16/2020 6:42:00'},'latitude': {0: -32.4353472, 1: -32.43535107}})
df['timestamp'] = pd.to_datetime(df['timestamp'])
df

    timestamp           latitude
0   2020-06-16 06:41:58 -32.435347
1   2020-06-16 06:42:00 -32.435351
然后,对数据重新采样:

df = df.resample('s', on='timestamp').mean().reset_index()
df
输出:

    timestamp            latitude
0   2020-06-16 06:41:58  -32.435347
1   2020-06-16 06:41:59  NaN
2   2020-06-16 06:42:00  -32.435351

我不确定你真正想做的是让
的意思是
,还是你真正想做的是重新采样数据。一般来说,后者将是一项更为常见的任务。以下是我使用的输入数据:

df = pd.DataFrame({'timestamp': {0: '6/16/2020 6:41:58', 1: '6/16/2020 6:42:00'},'latitude': {0: -32.4353472, 1: -32.43535107}})
df['timestamp'] = pd.to_datetime(df['timestamp'])
df

    timestamp           latitude
0   2020-06-16 06:41:58 -32.435347
1   2020-06-16 06:42:00 -32.435351
然后,对数据重新采样:

df = df.resample('s', on='timestamp').mean().reset_index()
df
输出:

    timestamp            latitude
0   2020-06-16 06:41:58  -32.435347
1   2020-06-16 06:41:59  NaN
2   2020-06-16 06:42:00  -32.435351

你好,大卫。谢谢你帮我。这是一个很酷的函数,我可能有很多用途,但它并不能解决我在这里遇到的问题。我确实有那个时间戳的数据,只是没有GPS纬度/长度。我希望创建一个平均位置,为所有数据点提供空间上下文。谢谢大卫。谢谢你帮我。这是一个很酷的函数,我可能有很多用途,但它并不能解决我在这里遇到的问题。我确实有那个时间戳的数据,只是没有GPS纬度/长度。我希望创建一个平均位置,为所有数据点提供空间上下文。干杯汉克斯·马拉特,这很有魅力。我不知道该功能是可用的,所以感谢您的启发!谢谢马拉,这很有魅力。我不知道该功能是可用的,所以感谢您的启发!