DataFrame时间处理的应用

提取时间序列某年/月/日/时/分/秒的数据

  1. 读取数据文件后,将时间数据转换成时间格式
df['GlobalTime'] = pd.to_datetime(df['GlobalTime'])
  1. 将时间数据设置为index
df = df.set_index('GlobalTime')
  1. 按index索引
# 提取一年数据
df['2020'].head()
Out[42]: 
                    detectorID Vol_L1  Ocp_L1  ...  Vol_L8  Ocp_L8  Sp_L8
GlobalTime                                     ...                       
2020-01-03 00:00:12     403276      3  0.0200  ...     NaN     NaN    NaN
2020-01-03 00:00:42     403276      1  0.0067  ...     NaN     NaN    NaN
2020-01-03 00:01:12     403276      3  0.0206  ...     NaN     NaN    NaN
2020-01-03 00:01:42     403276      2  0.0106  ...     NaN     NaN    NaN
2020-01-03 00:02:12     403276      2  0.0106  ...     NaN     NaN    NaN

[5 rows x 25 columns]

# 提取1月份数据
df['2020-1']
# 提取1月3日数据
df['2020-1-4']
# 提取1月4日21点数据
df['2020-1-4 21']
# 提取1月4日21点45分数据

df['2020-1-4 21:45']
Out[52]: 
                    detectorID Vol_L1  Ocp_L1  ...  Vol_L8  Ocp_L8  Sp_L8
GlobalTime                                     ...                       
2020-01-04 21:45:12     403276      4  0.0239  ...     NaN     NaN    NaN
2020-01-04 21:45:42     403276      4  0.0239  ...     NaN     NaN    NaN

[2 rows x 25 columns]

把一个DataFrame根据标签填入另一个DataFrame中:TimeMatch(timelist, readtable)

背景描述

  • 检测器本应该每20s读取一次数据,但是实际上数据有缺失,因此需要把读到的数据按照对应的时间填到一个具有完整时间线的Dataframe里。
  • 需要给出时间线不连续的数据(Dataframe,每行是一条记录)和一个完整的时间线(空Dataframe with Index)

代码

def TimeMatch(timelist, readtable):
    """
    补全readtable的时间线
    
    timelist:   时间列表,dataframe格式,是完整的时间线, size(4320,0)
    readtable:  读取的数据,dataframe格式,行索引为时间"hh-mm-ss",时间线不完整
    """
    Matchtable = timelist.T  	# 按列比较好匹配
    readlists = readtable.T.columns.values.tolist()
    for readlist in readlists:
        Matchtable[readlist] = readtable.T[readlist]
    Matchtable = Matchtable.T 	# 再转置回来
    return Matchtable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值