这个问题已经有similar question个了,但是答案并不能解决这个问题.
df = pl.DataFrame({"id": [1, 2, 1], "name": ['jenobi', 'blah', 'jenobi'],
"company": [[['some company 1', 'some company2'], ['some company2']],
[['company 1'], ['company 2', 'company 3']],
[['some company 1'], ['some company2', 'some company 1', 'some company 2']]]
})
Dataframe遵循如上的模式.我想在GROUPBY期间合并列表列表,并根据ID和名称进行聚合.
希望结果显示一个字符串连接的值,例如jenobi应该显示以下公司:"some company 1,some company 2,some company 2".
我try 对该公司进行分组AGG,并将结果扁平化,但这会产生panic 错误.
根据jqury的 comments ,先做扁平再做连接的问题是列表是扁平的.但是,输出中的平面子列表两边有双引号.
这是从以下方面产生的..
df.groupby("name").agg(pl.col("company").flatten().list.join(", "))
df.with_columns(pl.col("company").list.unique())
Ideally, the final result will show..
Panic Error
data = (
pl.read_parquet(r"input.parquet")
.select("id", "name", "company")
.groupby("id", "name")
.agg(
pl.col("company").flatten().list.unique()
)
)
有什么建议吗?