我想知道将2013年10月26日的日期转换为41573的公式,如excel中所做的那样.就像10/26/2013如何转换为41573.
我需要将日期转换为Excel序列号,以用于我正在编写的数据修改脚本.通过在我的OpenOffice Calc工作簿中播放日期,我能够推断出'1-Jan 1899 00:00:00'映射到数字零.
我编写了以下函数来将python datetime对象转换为Excel序列号:
def excel_date(date1):
temp=dt.datetime.strptime('18990101', '%Y%m%d')
delta=date1-temp
total_seconds = delta.days * 86400 + delta.seconds
return total_seconds
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试一些示例日期时,数字与我在Excel中格式化日期时所获得的数字不同(以及OpenOffice Calc).例如,测试'2009-03-20'在Python中给出3478032000,而excel将序列号呈现为39892.
上面的公式出了什么问题?
*注意:我使用的是Python 2.6.3,因此无法访问datetime.total_seconds()
我正在从excel读取数据并使用python操作数据.但是日期将以整数形式出现.如何将日期转换回日期格式?
2015年5月15日即将发布,电话为42139.00
我必须解析一个xml文件,它以Excel样式提供日期时间; 例如:42580.3333333333.
Pandas是否提供了将该数字转换为常规datetime对象的方法?
我想在Python上使用xlrd导入包含文本,数字和日期的文件.
我尝试过类似的东西:
if "/" in worksheet.cell_value:
do_this
else:
do_that
Run Code Online (Sandbox Code Playgroud)
但这没用,因为后者发现日期存储为浮点数,而不是字符串.要将它们转换为datetime类型我做了:
try:
get_row = str(datetime.datetime(*xlrd.xldate_as_tuple(worksheet.cell_value(i, col - 1), workbook.datemode)))
except:
get_row = unicode(worksheet.cell_value(i, col - 1))
Run Code Online (Sandbox Code Playgroud)
当单元格包含文本时,我有一个例外.现在我想将数字作为数字和日期作为日期,因为现在所有数字都转换为日期.
有任何想法吗?
我有一个带有日期列的数据框,它看起来像这样。有不止一个日期栏,例如结束日期、会计年度日期等。
Plan Start Date
8/16/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
4/21/2016 0:00
2/25/2016 0:00
12/15/2016 0:00
12/15/2016 0:00
12/15/2016 0:00
42373
42373
42367
42367
42367
42367
42460
42460
42460
42460
42460
42759
42333
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个函数,它基本上将这些积分器更改为适当的日期格式,并将此列格式化为日期时间 [64]。此列格式是当前对象类型。
我写了下面的功能
def change_date_df(df):
format_dates_df = [col for col in df.columns if 'Date' in col];
for date in format_dates_df:
df[date] = pd.to_datetime(df[date]).apply(lambda x: x.strftime('%d-%m-%y')if not pd.isnull(x) else '');
return df;
Run Code Online (Sandbox Code Playgroud)
它现在回馈一个
ValueError: mixed datetimes and integers in passed array
Run Code Online (Sandbox Code Playgroud)
我猜这些数字没有被转换成日期。但我不知道我还能如何调整我的代码。
任何的想法?
亚当
我有一个pandas.Series可能看起来像这样的对象:
import pandas as pd
myVar = pd.Series(["VLADIVOSTOK 690090", "MAHE", NaN, NaN, "VLADIVOSTOK 690090", "2000-07-01 00:00:00"])
Run Code Online (Sandbox Code Playgroud)
myVar[5]datetime.datetime当数据通过Python读入时,被解析为对象pandas.我假设将此值转换为自纪元(36708)以来的天数并不困难.我刚接触Python,不知道该怎么做.提前致谢!
我有一个 Json 内容:
{
"Name": "startTime",
"Value": [
{
"Valid": true,
"Time": 43852.491953472221
}
]
}
Run Code Online (Sandbox Code Playgroud)
其中“时间”以小数表示 43852.491953472221 据我所知,表示自 1900 年 1 月 1 日以来的天数。
有没有快速的方法可以将Python中的时间转换为如下格式:
import time
print("Start time: ", time.ctime(time.time()))
Run Code Online (Sandbox Code Playgroud)
输出:
Start time: Wed Jan 22 14:10:50 2020
Run Code Online (Sandbox Code Playgroud) python ×7
excel ×5
date ×4
datetime ×4
pandas ×3
xlrd ×2
data-munging ×1
decimal ×1
epoch ×1
python-3.x ×1