我正在try 计算列表的熵,但我需要首先进行转换:

import polars as pl
df = pl.DataFrame({"Result": "1, 2, 3"})

df.select(pl.col("Result").str.split(",").cast(pl.List(pl.Float64)).entropy()).collect()

但这给出:

ComputeError: cannot cast List type (inner: 'Float64', to: 'Float64')

这里怎么了?

推荐答案

对于这个问题,您需要做几件事:

  1. 正确解析数字(包括逗号后面的空白)
  2. 使用.list.eval(…entropy())计算每个列表的信息量
  3. 结果返回一个长度为1的列表,因此我们获取计算出的熵
import polars as pl
print(pl.__version__) # 0.20.2

df = pl.DataFrame({"Result": ["1, 2, 3", "4, 5, 6"]})

print(
    df.select(
        pl.col("Result").str.split(", ")   # ①
        .cast(pl.List(pl.Float64))
        .list.eval(pl.element().entropy()) # ②
        .list.get(0)                       # ③
    )
    # shape: (2, 1)
    # ┌──────────┐
    # │ Result   │
    # │ ---      │
    # │ f64      │
    # ╞══════════╡
    # │ 1.011404 │
    # │ 1.085189 │
    # └──────────┘
)

Python相关问答推荐

无法在Python中使用Selenium标记正确的元素以抓取网站

tempfile.mkstemp(text=.)参数实际上是什么?

Pandas基于另一列的价值的新列

Python:根据创建时间合并两个收件箱

Django关于UniqueBindition的更新

Pandas 按照特殊规则保留每n行

在Python中,如何才能/应该使用decorator 来实现函数多态性?

Pandas read_jsonfuture 警告:解析字符串时,to_datetime与单位的行为已被反对

PyQt5如何将pyuic 5生成的Python类添加到QStackedWidget中?

使文本输入中的文本与标签中的文本相同

如何使用entry.bind(FocusIn,self.Method_calling)用于使用网格/列表创建的收件箱

如何处理嵌套的SON?

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

如何让 turtle 通过点击和拖动来绘制?

如何使用Jinja语法在HTML中重定向期间传递变量?

如何找到满足各组口罩条件的第一行?

如何请求使用Python将文件下载到带有登录名的门户网站?

不允许访问非IPM文件夹

CommandeError:模块numba没有属性generated_jit''''

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?