在 Polars Python API 中将两列组合成元组

Sle*_*dge 3 python data-manipulation python-polars

我有一个极坐标数据框\xc2\xa0,看起来像:

\n
df = pl.DataFrame({"bid": [1, 2, 3], "fid": [4, 5, 6]})\n
Run Code Online (Sandbox Code Playgroud)\n

我想将两列按行组合成一个元组,以便结果如下所示:

\n
pl.DataFrame({"bfid": [(1, 4), (2, 5), (3, 6)]})\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试这样做:df2.with_columns(pl.map([\'bid\', \'fid\'], lambda x: (x[0], x[1])))这是错误的,但如果我尝试扩展到大型数据集,速度也会很慢。

\n

有没有更好的方法来进行这种类型的数据操作?最终结果应该是:

\n

在此输入图像描述

\n

小智 5

因此,在极坐标中组合数据帧的行列非常简单,因为这种功能已经内置了。

\n
df.select(pl.concat_list(pl.col(["bid", "fid"])).alias("bfid"))\n\n\nshape: (3, 1)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 bfid      \xe2\x94\x82\n\xe2\x94\x82 ---       \xe2\x94\x82\n\xe2\x94\x82 list[i64] \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 [1, 4]    \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 [2, 5]    \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 [3, 6]    \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n

如果您想了解有关极坐标中的行式和列表计算的更多信息,用户指南中有一个精彩的部分

\n