如何将"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。
我正在尝试学习推荐系统。我已将关联规则导入到我的 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。