如何将"frozenset({})"字符串转换为frozenset数据类型?

How to convert "frozenset({})" string to the data type frozenset?

我正在尝试学习推荐系统。我已将关联规则导入到我的 sheet,但前提和结果值被格式化为字符串,我需要将它们转换为 python 中的数据类型 frozenset。 如果有一个像 "frozenset({3048, 3046})" 这样的字符串,我需要将它转换为 (3048,3046) 我该怎么做?

这是示例代码。

import pandas as pd

frozen_df =  [{"antecedents" : "frozenset({3048, 3046})","consequents" : "frozenset({10})"},
              {"antecedents" : "frozenset({3504, 3507})","consequents" : "frozenset({3048, 85})"}]

frozen_df = pd.DataFrame(frozen_df)
frozen_df.dtypes

你当然可以把它们分开,例如使用

def to_frozenset(x):
    return frozenset(map(int, x.split("{")[1].split("}")[0].split(",")))

frozen_df = frozen_df.applymap(to_frozenset)

但是请注意,frozen_df.dtypes 仍将是 object,因为 Pandas 中没有“frozenset dtype”。相反,查看单个元素 (frozen_df.iloc[0, 0]) 将证明这些元素确实是 frozensets。