我有一个极坐标数据框,如下所示:
df = pl.DataFrame({"bid": [1, 2, 3], "fid": [4, 5, 6]})
我想将两列按行组合成一个元组,以便结果如下:
pl.DataFrame({"bfid": [(1, 4), (2, 5), (3, 6)]})
我尝试这样做:df2.with_columns(pl.map(['bid', 'fid'], lambda x: (x[0], x[1])))
这是错误的,但如果我尝试扩展到大型数据集,速度也会相当慢。
是否有更好的方法来进行此类数据操作?最终结果应该是:
最佳答案
因此,在极坐标中组合数据帧的行列非常简单,因为这种功能已经内置。
df.select(pl.concat_list(pl.col(["bid", "fid"])).alias("bfid"))
shape: (3, 1)
┌───────────┐
│ bfid │
│ --- │
│ list[i64] │
╞═══════════╡
│ [1, 4] │
├╌╌╌╌╌╌╌╌╌╌╌┤
│ [2, 5] │
├╌╌╌╌╌╌╌╌╌╌╌┤
│ [3, 6] │
└───────────┘
如果您想了解有关极坐标中的行式和列表计算的更多信息,user-guide 中有一个精彩的部分。
关于python - 在 Polars Python API 中将两列组合成元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74130719/