我有一个 Polars DataFrame,其中包含一列,其中的字符串表示“稀疏”部门风险敞口,如下所示:
pl.DataFrame(
[
pl.Series("sector_exposure", [
'Technology=0.207;Financials=0.090;Health Care=0.084;Consumer Discretionary=0.069',
'Financials=0.250;Health Care=0.200;Consumer Staples=0.150;Industrials=0.400'
], dtype=pl.String),
]
)
扇区曝光 |
---|
科技=0.207;金融=0.090;医疗保健=0.084;非必需消费品=0.069 |
金融=0.250;医疗保健=0.200;消费品=0.150;工业=0.400 |
我想将此字符串“解压”到每个部门(例如,技术、金融、医疗保健)的新列中,并具有相关值或以部门名称作为字段和曝光值的极坐标结构。
我正在寻找一种仅使用极坐标表达式的更有效的解决方案,而不求助于 Python 循环(或 python 映射函数)。任何人都可以提供如何实现这一目标的指导吗?
这是我到目前为止所想出的——它可以生成所需的结构,但有点慢。
(
df["sector_exposure"]
.str
.split(";")
.map_elements(lambda x: {entry.split('=')[0]: float(entry.split('=')[1]) for entry in x},
skip_nulls=True,
)
)
谢谢!