如何使用 qPython 和 pandas 从 kdb 服务器查询响应转换日期和时间?
How to convert date and time from kdb server query response using qPython and pandas?
我在 kdb 服务器回复中转换日期和时间时遇到问题。
我在 Internet 和此处,在 Whosebug 中进行了搜索,但找不到合适的解决方案。因此我需要帮助。
from qpython import qconnection
import pandas as pd
from datetime import datetime
query = 'select from trade where date = 2007.02.28, sym = `XXXX'
q = qconnection.QConnection(host=server, port=server_port, username=user, password=server_password, timeout=server_timeout)
q.open()
df = pd.DataFrame(q.sendSync(query))
print(df.to_string())
q.close()
回复是(只有header行和第一行):
date time ex sym cond size price stop corr seq src trpt participantTime1 rrn participantTime2 id exempt
0 2615 15517877000000 b'P' b'XXXX' b'T ' 500 27.670000 b' ' 0 1095 b'N' b' ' -9223372036854775808 b'' -9223372036854775808 b'' -32768
如何转换日期和时间?现在我有 2615 日期 ,它必须是 2007.02.28。 时间也是如此。它是15517877000000,而它应该是0D04:18:37.877000000。 (时间上的 0D 很可能来自编码 - 如果需要,我稍后会解决这个问题。)。 participantTime1 和 participantTime2
也是如此
提前感谢大家的宝贵时间。
Pandas qPython 包支持集成和自动时间类型转换,这将简化您的问题。你可以找到相关的 documentation here.
您需要对代码片段进行的唯一更改是在实例化 QConnection
对象时将 pandas
标志设置为 True
:
q = qconnection.QConnection(host=server, port=server_port, username=user,
password=server_password, timeout=server_timeout, pandas=True)
在这种情况下,您也不需要将 return 值从 sendSync
转换为 q 表现在默认表示为 pandas 数据帧:
df = q.sendSync(query)
我在 kdb 服务器回复中转换日期和时间时遇到问题。
我在 Internet 和此处,在 Whosebug 中进行了搜索,但找不到合适的解决方案。因此我需要帮助。
from qpython import qconnection
import pandas as pd
from datetime import datetime
query = 'select from trade where date = 2007.02.28, sym = `XXXX'
q = qconnection.QConnection(host=server, port=server_port, username=user, password=server_password, timeout=server_timeout)
q.open()
df = pd.DataFrame(q.sendSync(query))
print(df.to_string())
q.close()
回复是(只有header行和第一行):
date time ex sym cond size price stop corr seq src trpt participantTime1 rrn participantTime2 id exempt
0 2615 15517877000000 b'P' b'XXXX' b'T ' 500 27.670000 b' ' 0 1095 b'N' b' ' -9223372036854775808 b'' -9223372036854775808 b'' -32768
如何转换日期和时间?现在我有 2615 日期 ,它必须是 2007.02.28。 时间也是如此。它是15517877000000,而它应该是0D04:18:37.877000000。 (时间上的 0D 很可能来自编码 - 如果需要,我稍后会解决这个问题。)。 participantTime1 和 participantTime2
也是如此提前感谢大家的宝贵时间。
Pandas qPython 包支持集成和自动时间类型转换,这将简化您的问题。你可以找到相关的 documentation here.
您需要对代码片段进行的唯一更改是在实例化 QConnection
对象时将 pandas
标志设置为 True
:
q = qconnection.QConnection(host=server, port=server_port, username=user,
password=server_password, timeout=server_timeout, pandas=True)
在这种情况下,您也不需要将 return 值从 sendSync
转换为 q 表现在默认表示为 pandas 数据帧:
df = q.sendSync(query)