答案 0 :(得分:3)
要将q表转换为熊猫数据框,可以使用以下功能:
tab2df:{
r:.p.import[`pandas;`:DataFrame;x][@;cols x];
$[count k:keys x;r[`:set_index]k;r]}
要将熊猫数据框转换为q表,可以使用以下功能:
df2tab:{n:$[.p.isinstance[x`:index;.p.import[`pandas]`:RangeIndex]`;0;x[`:index.nlevels]`];n!flip $[n;x[`:reset_index][];x][`:to_dict;`list]`}
df2tab需要将熊猫数据框添加到embedPy对象。您可以使用.p.wrap
。
参见下面的示例
q)\l p.q
q)tab:([]a:10?10.;b:10?10;c:10?`aaa`bbb`ccc)
q)tab
a b c
---------------
1.086824 2 ccc
9.598964 7 aaa
0.3668341 8 aaa
6.430982 5 ccc
6.708738 6 aaa
6.789082 4 bbb
4.12317 1 aaa
9.877844 3 aaa
3.867353 3 aaa
7.26781 7 ccc
q)tab2df[tab]
{[f;x]embedPy[f;x]}[foreign]enlist
q)print tab2df[tab]
a b c
0 1.086824 2 ccc
1 9.598964 7 aaa
2 0.366834 8 aaa
3 6.430982 5 ccc
4 6.708738 6 aaa
5 6.789082 4 bbb
6 4.123170 1 aaa
7 9.877844 3 aaa
8 3.867353 3 aaa
9 7.267810 7 ccc
q)pdtab:tab2df[tab]
q)df2tab[pdtab]
a b c
-----------------
1.086824 2 "ccc"
9.598964 7 "aaa"
0.3668341 8 "aaa"
6.430982 5 "ccc"
6.708738 6 "aaa"
6.789082 4 "bbb"
4.12317 1 "aaa"
9.877844 3 "aaa"
3.867353 3 "aaa"
7.26781 7 "ccc"
希望这会有所帮助!