python处理excel时间_Python从excel-fi读取时间时未获得正确的datetime

我有一个excel文件,它有3列作为日期时间或日期或时间字段。我是通过xlrd包来阅读的,我得到的时间是milliseconds我想,当我试图把它转换回datetime时,我得到了错误的结果。在

我也尝试将文件转换为csv。这也没用,我得到了奇怪的日期时间格式,我无法理解。在

下面是我尝试的xlrd格式。我更喜欢使用扩展名为.xlrs的文件作为输入,否则每次获得新的输入文件时,我都必须将excel文件转换为.csv。在from xlrd import open_workbook

import os,pickle,datetime

def main(path, filename, absolute_path_organisation_structure):

absolute_filepath = os.path.join(path,filename)

wb = open_workbook(absolute_filepath)

for sheet in wb.sheets():

number_of_rows = sheet.nrows

number_of_columns = sheet.ncols

for row_index in xrange(1, sheet.nrows):

row=[]

for col_index in xrange(4,7): #4th and 6th columns are date fields

row.append(sheet.cell(row_index, col_index).value)

print(row) #Relevant list formed with 4th, 5th and 6th columns

print(datetime.datetime.fromtimestamp(float(row[0])).strftime('%Y-%m-%d %H:%M:%S'))

path = "C:\\Users\\***************\\NEW DATA"

MISfile = "P2P_2015 - Copy.xlsx"

absolute_path_organisation_structure = "C:\\Users\\******************NEW DATA\\organisation.csv"

main(path, MISfile, absolute_path_organisation_structure)

结果:

^{pr2}$

实际输入文件:(从excel复制)1/7/2015 11:13 Registered 1/5/2015 0:00

1/7/2015 11:13 Sent for CTG1 approval 1/6/2015 0:00

1/7/2015 11:13 Sent back 1/6/2015 0:00

1/7/2015 11:13 Registered 1/7/2015 0:00

1/7/2015 11:13 Sent for CTG1 approval 1/7/2015 0:00

1/7/2015 11:13 Sent for CTG2 approval 1/8/2015 0:00

1/7/2015 11:13 CTG2 Approved 1/8/2015 0:00

1/7/2015 11:13 Sent back 1/9/2015 0:00

6/15/2015 14:48 Registered 5/20/2015 0:00

6/15/2015 14:48 Registered 5/20/2015 0:00

6/15/2015 14:48 Sent back 6/10/2015 0:00

6/15/2015 14:48 Sent back 6/10/2015 0:00

6/15/2015 14:48 Registered 6/15/2015 0:00

6/15/2015 14:48 Registered 6/15/2015 0:00

为什么我不能正确地读出日期?为什么它们不简单地变成字符串,这样我就可以很容易地转换它们?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用DFA法计算Hurst指数的Python代码,并包含单维EXCEL数据的读取代码: ```python import numpy as np import pandas as pd def dfa(x, nvals=None, overlap=True): """ Detrended Fluctuation Analysis (DFA). Parameters ---------- x : array_like, shape (n_samples,) One-dimensional time series. nvals : array_like, optional (default=None) Values of n to use. If None, nvals will be logarithmically spaced between 10 and len(x)//4 (inclusive). overlap : bool, optional (default=True) If True, windows are allowed to overlap. Returns ------- alpha : float The slope of the line fit to the log of the fluctuation function. """ x = np.asarray(x, dtype=np.float64) if x.ndim != 1: raise ValueError("x must be one-dimensional.") if nvals is None: nvals = np.logspace(1, int(np.log2(len(x) // 4)), base=2, dtype=int) else: nvals = np.asarray(nvals, dtype=int) if np.any(nvals > len(x) // 2): raise ValueError("Maximum n is len(x) // 2.") if overlap: step = 1 else: step = nvals[0] F = np.zeros_like(nvals, dtype=np.float64) for i, n in enumerate(nvals): w = np.ones(n, dtype=np.float64) w /= np.sqrt(np.sum(w)) if overlap: y = np.convolve(x, w, mode='valid') else: y = [np.mean(x[j:j+n]) for j in range(0, len(x)-n+1, n)] yi = np.cumsum(y - np.mean(y)) fi = np.sqrt(np.sum(yi**2)) / np.sqrt(n) F[i] = fi p = np.polyfit(np.log(nvals), np.log(F), deg=1) return p[0] # 读取单维EXCEL数据 data = pd.read_excel('data.xlsx', sheet_name='Sheet1') x = data.iloc[:, 0].values # 计算Hurst指数 hurst = dfa(x) print("Hurst exponent: {:.3f}".format(hurst)) ``` 其,`data.xlsx`为包含单维数据的EXCEL文件,`Sheet1`为数据所在的工作表。你可以将数据按照一列的方式存储在EXCEL文件,然后通过`pandas`库的`read_excel`函数读取数据。读取后,将数据存储在`x`变量,再调用`dfa`函数计算Hurst指数即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值