我有一个数据集,其中包含项目类型和每个项目的数量,但项目类型列的某些行包含类型列表而不是单一类型。我想将类型列表分解为单独的行并按比例分割数量。
在 pandas 中,我通常会爆炸,然后按索引分组,类似于 此处描述的过程(该页面上显示的示例数据类似于我正在使用的数据)。
我总是可以在 Polars 数据框中创建自己的索引,或者在适合内存的卡盘中与 Pandas 相互转换,但是在 Polars 中是否有更好的方法来做到这一点?
最简单的方法是循环遍历值列中的列表并创建一个新的数据框。
import polars as pl
df = pl.DataFrame(data={'id': list('xyz'),
'val': [['abc', 20, 30.3], 2.1, 3]})
data = []
for row in df.iter_rows(named=True):
try:
for item in row['val']:
data.append([row['id'], item])
except:
data.append([row['id'], row['val']])
df_out = pl.DataFrame(data=data, schema=df.schema)
print(df_out)
输出 -