【问题标题】:pandas: add missing timestamp into data frame with a default value熊猫:将缺少的时间戳添加到具有默认值的数据框中
【发布时间】:2018-03-12 17:03:43
【问题描述】:

我正在使用以下代码将数据放入数据框中:

import pandas as pd
pd.set_option('display.float_format', lambda x: '%.3f' % x)

df = pd.DataFrame(columns = ['time', 'value'])

for x in data0.data:
    df = df.append({'time': x[0], 'value': x[1]}, ignore_index=True)

df

数据框如下:

        time        value
0   1520529900.000  24.333
1   1520530260.000  16.333
2   1520530320.000  10.500
3   1520530380.000  34.000
4   1520530740.000  33.667
5   1520530800.000  26.667
6   1520531160.000  15.000
7   1520531220.000  25.000
8   1520531280.000  31.000
9   1520531640.000  42.000
10  1520531700.000  34.333

每条记录之间的时间差是60。但是,有缺失的数据,所以记录之间的时间差有时> 60。如何通过使记录之间的所有时间差= 60和缺失来添加缺失数据的记录值为-1?谢谢!

【问题讨论】:

    标签: python-2.7 pandas timestamp missing-data


    【解决方案1】:

    您可以将time 设置为索引,重新索引它,以便您拥有间隔为60 秒的所有索引值,并用-1 填充NaN:

    In [242]: df.set_index('time').reindex(np.arange(df['time'].min(), df['time'].max(), 60)) \
                .fillna(-1) \
                .reset_index()
    Out[242]:
                time   value
    0   1.520530e+09  24.333
    1   1.520530e+09  -1.000
    2   1.520530e+09  -1.000
    3   1.520530e+09  -1.000
    4   1.520530e+09  -1.000
    5   1.520530e+09  -1.000
    6   1.520530e+09  16.333
    ..           ...     ...
    23  1.520531e+09  31.000
    24  1.520531e+09  -1.000
    25  1.520531e+09  -1.000
    26  1.520531e+09  -1.000
    27  1.520532e+09  -1.000
    28  1.520532e+09  -1.000
    29  1.520532e+09  42.000
    
    [30 rows x 2 columns]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 2016-08-17
      相关资源
      最近更新 更多