- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的输入 CSV 有两个时间戳格式的日期时间列“开始时间”和“结束时间”。
我可以解析时间戳,但无法将结果列设为 datetime64?!
无论我是否使用自定义日期格式化程序mdb_to_datetime()
或将其注释掉。它们仍然是“np.object”,它是“np.string”的包装器。 (这会导致稍后的日期算术崩溃。)
尝试在 read_csv 失败后在结果对象(字符串)列上组合 cal['Start Time'].astype(np.datetime64)
也失败。
from datetime import datetime
def mdb_to_datetime(ts):
"""Convert Access MDB to datetime"""
return datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M')
cal = pd.read_csv('my.csv', header=0,
usecols = ['Start Time','End Time','Summary'],
parse_dates = ['Start Time','End Time'] )
#, date_parser = mdb_to_datetime )
# my.csv looks like (uninteresting columns removed):
Start Time,End Time,Summary
"1209396600","1209429000","some event"
"1226163600","1226206800","another event"
<小时/>
附录:1)感谢@merlin2011,现在这似乎可以满足我的需要,但是有人可以缩短这条线吗?
def mdb_to_datetime(ts):
return np.datetime64(datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M'))
2)还有其他人认为文档没有告诉您自定义日期格式化程序应该返回np.datetime64
的任何地方吗?
最佳答案
回答您的问题:
2)自定义日期格式化程序不必返回np.datetime64
,只要像日期时间一样就很好(文档说:“将字符串转换为日期时间实例”)。所以datetime.datetime
就可以了,不需要将其转换为字符串。
1)这也是第一个问题,您可以通过省略 strftime
来缩短它:
def mdb_to_datetime(ts):
return datetime.fromtimestamp(float(ts))
您还可以使用 pandas to_datetime
函数:pd.to_datetime(ts, unit='s')
关于python - pd.read_csv(parse_dates... [date_formatter=]) 返回 dtype 'object' 而不是 'datetime64',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23179897/
我的输入 CSV 有两个时间戳格式的日期时间列“开始时间”和“结束时间”。 我可以解析时间戳,但无法将结果列设为 datetime64?! 无论我是否使用自定义日期格式化程序mdb_to_dateti
我是一名优秀的程序员,十分优秀!