gpt4 book ai didi

pandas - 将 kdb 表保存到数据帧,然后将数据帧保存到 csv。 null 和字符串值错误地输出到 csv?

转载 作者:行者123 更新时间:2023-12-02 19:54:58 28 4
gpt4 key购买 nike

我将 kdb 表保存到数据帧,然后将数据帧保存到 csv。但是,这适用于 csv 文件,并且如果我打印(数据帧); null 值显示为“b” ”,所有其他字符串值显示为“b'STRING' ”。

运行 Python 3.7、pandas 0.24.2 和 qpython 2.0.0。

df = pandas.DataFrame(qpython query)
df.to_csv(path_or_buf="",
sep=",", na_rep='',
float_format=None,
columns=None,
header=True, index=False,
index_label=None, mode='w+', compression=None, quoting=None, quotechar='"',
line_terminator="\n", chunksize=50, tupleize_cols=None, date_format=None,
doublequote=True,
escapechar=None, decimal='.', encoding='utf-8')

我希望 KDB 表能够正确输出到 csv,其中 null 为空列,字符串仅显示字符串,没有“b'STRING' ”。

任何建议或帮助将不胜感激。如果有人需要更多信息,我很乐意提供。

csv 中的示例:

空单元格显示为:b"

包含字符串的单元格显示为:“b'Euro'”,而实际上应该只显示“Euro”

最佳答案

qPython 具有一些将 kdb 表转换为 pandas 数据帧的功能。我首先在 kdb "t"中创建一个表,该表有 4 列,其中第三列是符号列,第四列是字符列。第一行中的条目完全为空。

t:([] a: 0N, til 99; b: 0Nf, 99?1f; c: `, 99?`3; d: " ", 99?" ")
a b c d
-----------------

0 0.4123573 iee x
1 0.8397208 app l
2 0.3392927 ncm w
3 0.285506 pjn c

然后可以使用 QConnection 将表读入 Python。如果我们在读入表后将其转换为数据帧,我们可以看到符号和字符已转换为字节,而空值未正确转换。

df=pandas.DataFrame(q('t'))
df.head()
a b c d
0 -9223372036854775808 NaN b'' b' '
1 0 0.412357 b'iee' b'x'
2 1 0.839721 b'app' b'l'
3 2 0.339293 b'ncm' b'w'
4 3 0.285506 b'pjn' b'c'

但是,如果我们在 q 查询中使用 pandas=True 参数,那么大部分表都会根据需要进行适当转换:

df=q('t', pandas=True)
df.head()
a b c d
0 NaN NaN b''
1 0.0 0.412357 b'iee' x
2 1.0 0.839721 b'app' l
3 2.0 0.339293 b'ncm' w
4 3.0 0.285506 b'pjn' c

但是请注意,在 kdb 中存储为符号的条目不会根据需要进行转换。在这种情况下,以下代码将使用与 Callum 建议的类似方法手动将 string_cols 中指定的任何列从字节解码为字符串。

string_cols = ['c']
df[string_cols] = df[string_cols].applymap(lambda s : s.decode('utf-8'))

给出最终结果:

df.head()
a b c d
0 NaN NaN
1 0.0 0.412357 iee x
2 1.0 0.839721 app l
3 2.0 0.339293 ncm w
4 3.0 0.285506 pjn c

可以轻松转换为 csv 文件。

希望这有帮助

关于pandas - 将 kdb 表保存到数据帧,然后将数据帧保存到 csv。 null 和字符串值错误地输出到 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57268769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com