gpt4 book ai didi

python - 如何将 pandas 时间戳添加到 read_csv 后的数据帧中

转载 作者:行者123 更新时间:2023-12-02 03:18:41 24 4
gpt4 key购买 nike

读取 cvs 文件后如何在数据框中添加时间戳?我有一个带有测量值的数据集,但没有时间戳。我知道传感器数据的频率(200 Hz)和开始日期/时间。

我尝试计算文件中的行数并创建时间列。使用 pd.insert 我插入了这个时间戳。我的问题是,在绘制这些数据时,我的 x 轴不显示属性时间戳,而是显示测量次数。我的代码:


#Importing signals
data = pd.read_csv('.../monday.txt')
data.columns = ['l1','l2','l3','l4','l5','l6']

print("Sensor data: ")
print(data.head())
print(data.dtypes)

nbrMeasurments = sum(1 for line in open('.../monday.txt'))
data.insert(0, "Time", pd.timedelta_range('11:24:26',
periods=nbrMeasurments-1, freq="5L"))

print("Revised sensor data: ")
print(data.head())
print(data.dtypes)

在另一个有时间戳的文件中,它看起来像 pd.read_csv('.../mondayV1.csv',index_col='Date', usecols= [0,1,2], parse_dates=True) 中的“index_col='Date'”是确保 x 轴由日期而不是测量编号“x”引用的命令:

                         SYS (mmHg)  DIA (mmHg)
Date
2019-08-07 13:06:30 111 61
2019-08-07 13:07:08 114 64
2019-08-07 13:07:56 112 63
2019-08-07 13:08:42 127 81
2019-08-07 13:09:19 129 83
Omron data types:
SYS (mmHg) int64
DIA (mmHg) int64

当我尝试插入没有时间戳的文件时,“时间”被列为可用:

                 Time        l1        l2        l3        l4       l5       
l6
0 11:24:26 0.787261 0.943828 1.100903 0.835889 2.524946
2.252113
1 11:24:26.005000 0.787068 0.943638 1.100871 0.835882 2.531180
2.253063
2 11:24:26.010000 0.786951 0.943496 1.100779 0.835909 2.531573
2.253395
3 11:24:26.015000 0.786879 0.943553 1.100877 0.835877 2.533841
2.254906
4 11:24:26.020000 0.786682 0.943536 1.100651 0.835674 2.539893
2.257780
    Time    timedelta64[ns]
l1 float64
l2 float64
l3 float64
l4 float64
ecg float64
ppg float64

如何以最有效的方式为该文件赋予时间?

最佳答案

尝试 data.set_index(keys="Time", inplace=True) 像这样:

import pandas as pd
from io import StringIO

data = pd.read_csv(StringIO("""
Time l1 l2 l3 l4 l5 l6
0 11:24:26 0.787261 0.943828 1.100903 0.835889 2.524946 2.252113
1 11:24:26.005000 0.787068 0.943638 1.100871 0.835882 2.531180 2.253063
2 11:24:26.010000 0.786951 0.943496 1.100779 0.835909 2.531573 2.253395
3 11:24:26.015000 0.786879 0.943553 1.100877 0.835877 2.533841 2.254906
4 11:24:26.020000 0.786682 0.943536 1.100651 0.835674 2.539893 2.257780"""), sep="\s+")

data.set_index(keys="Time", inplace=True)

print(data)

输出:

                       l1        l2        l3        l4        l5        l6
Time
11:24:26 0.787261 0.943828 1.100903 0.835889 2.524946 2.252113
11:24:26.005000 0.787068 0.943638 1.100871 0.835882 2.531180 2.253063
11:24:26.010000 0.786951 0.943496 1.100779 0.835909 2.531573 2.253395
11:24:26.015000 0.786879 0.943553 1.100877 0.835877 2.533841 2.254906
11:24:26.020000 0.786682 0.943536 1.100651 0.835674 2.539893 2.257780

关于python - 如何将 pandas 时间戳添加到 read_csv 后的数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56965905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com