pandas的dat数据读取、时间戳处理、按条件切片

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from IPython import display
display.set_matplotlib_formats('svg')
# IPython.display 库中的一个函数,用于设置 matplotlib 图形的输出格式,是一种矢量图
#可以在不失真的情况下放大和缩小图片


filepath=r"D:\***苹果\***\channel_4.dat"

##设定要读取的dat文件的绝对路径
 #中文目录可读取
data = pd.read_csv(filepath,sep=' ')   #读取非压缩文档.dat,filepath为绝对地址
#对读入的dat数据按空格分列sep=' '
#https://deepinout.com/pandas/pandas-questions/532_pandas_read_data_dat_file_with_pandas.html

#data = pd.read_table('data.dat', header=None, sep=' ')
#data.head()
#其中,header=None 表示我们不需要文件的第一行作为文件头;sep=' '表示我们的数据文件以空格作为字段分隔符。
#如果想仅仅读取.dat文件的某几列,可以指定usecols参数。例如:
#data = pd.read_table('data.dat', header=None, sep=' ', usecols=[1, 3])
data.shape  #文件的shape行列?
data.head()  #文件前5行的数据
print(data.head(10))  #文件前10行数据
print(data.tail())  #文件末尾5行的数据
print(data.info())  #文件的信息
#给读入的data数据增加列名
#https://blog.csdn.net/qq_28077617/article/details/120144407
channel_name=['timestamp','power']
#channel_name=['timestamp']
data.columns=channel_name
print(data.head(10))  #文件前10行数据
#将时间戳数据变换为日期,并给列名date
#https://www.cnblogs.com/stycoding/p/14379499.html
data['date'] = pd.to_datetime(data['timestamp'],unit="s")
#用 pandas 中的 to_datetime() 将时间戳转化为日期
print(data.head(10))  #文件前10行数据
#将dataframe 存到指定的位置,指定的。dat文件名,注意绝对地址用\\间隔
#https://blog.csdn.net/HYQ666888999/article/details/112853262
data.to_csv('D:\\***苹果\\channel_4_t.dat', sep=' ', index=False)
#存到spyder默认的文件夹中则不需指定路径
#data.to_csv('channel_4_t.dat', sep=' ', index=False)

df_slice = data.loc[data.date=="2013-02-17 15:39:31"]

#按条件对数据中date列值为"2013-02-17 15:39:31"的进行切片

#Pandas读取某列、某行数据——loc、iloc用法总结
#https://blog.csdn.net/Bigboss7/article/details/118597351
# print(df_slice.info())  #文件的信息

#pandas如何将datetime64[ns] -是时间戳转换成的日期格式-转为字符串日期
#https://pythonjishu.com/tpjdoevfjjtrsdy/
data['ymd_date_str'] = data['date'].dt.strftime('%Y-%m-%d')
#将格式为datetime64[ns] 的列date数据生成新的列字符串数据日期格式为年-月-日
#生成的字符串数据格式的说明https://www.runoob.com/python/att-time-strftime.html
#可以指定年月日时分秒
print(data.info())
data.head()
data['md_date_str'] = data['date'].dt.strftime('%m-%d')
#将格式为datetime64[ns] 的列date数据生成新的列数据日期格式为月-日
print(data.info())
data.head()
print(data.tail())
per_day_slice = data.loc[data.ymd_date_str =="2013-02-17"]
#按照datafarme中的字符串的时间进行切片获取数据,可以整行提取或者指定列提取

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值