我想计算两个 Polars 列中的独特组合。
df <- data.frame(a = c(2,0,1,0,0,0), b = c(1,1,1,0,0,1))
table(df)
0 1
0 2 2
1 0 1
2 0 1
import numpy as np
a = np.array([2,0,1,0,0,0])
b = np.array([1,1,1,0,0,1])
pd.crosstab(a, b)
0 1
0 2 2
1 0 1
2 0 1
这是正确的方法吗?
df = pl.DataFrame(
{
"a": [2,0,1,0,0,0],
"b": [1,1,1,0,0,1]
}
)
df.pivot(on="a", index="b", values="a", aggregate_function="len").fill_null(0)
我认为你想颠倒你的枢轴中的“a”和“b”。您还可以使用
sort_columns
参数以及末尾的 .sort
来获得相同的输出
df.pivot(on='b',index='a',values='b',aggregate_function='len',sort_columns=True).fill_null(0).sort('a')
shape: (3, 3)
┌─────┬─────┬─────┐
│ a ┆ 0 ┆ 1 │
│ --- ┆ --- ┆ --- │
│ i64 ┆ u32 ┆ u32 │
╞═════╪═════╪═════╡
│ 0 ┆ 2 ┆ 2 │
│ 1 ┆ 0 ┆ 1 │
│ 2 ┆ 0 ┆ 1 │
└─────┴─────┴─────┘