读取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“被列为变量:
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
如何以最有效的方式将时间分配给这个文件?
发布于 2019-07-10 08:12:17
将值分配给索引,而不是data.insert
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.index = pd.timedelta_range('11:24:26', periods=nbrMeasurments-1, freq="5L")
#another solution
#data = data.set_index(pd.timedelta_range('11:24:26', periods=nbrMeasurments-1, freq="5L"))
print("Revised sensor data: ")
print(data.head())
print(data.index)
发布于 2019-07-10 08:06:39
像这样尝试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
https://stackoverflow.com/questions/56965905
复制