返回nan值

2024-05-19 09:48:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习一个关于市场篮子分析的教程。 所有的工作都很好,但我想将数据导出到只有文本和数字的csv

csv的输出如下所示

,antecedents,consequents,antecedent support,consequent support,support,confidence,lift,leverage,conviction
0,frozenset({'DOLLY GIRL LUNCH BOX'}),frozenset({'SPACEBOY LUNCH BOX'}),0.22,0.28,0.21,0.95,3.41,0.148,15.84
1,frozenset({'SPACEBOY LUNCH BOX'}),frozenset({'DOLLY GIRL LUNCH BOX'}),0.28,0.22,0.21,0.75,3.41,0.15,3.12

应该是这样的

antecedents,consequents,antecedent support,consequent support,support,confidence,lift,leverage,conviction
    SPACEBOY LUNCH BOX,DOLLY GIRL LUNCH BOX,0.28,0.22,0.21,0.75,3.41,0.15,3.12
    DOLLY GIRL LUNCH BOX,SPACEBOY LUNCH BOX,0.22,0.28,0.21,0.96,3.41,0.1484,15.84

我想去掉文本中的frozenset({})部分

这在我们的熊猫中是可能的吗?我应该用str.strip解构和重建数据帧吗

df['antecedents'] = df['antecedents'].str.strip('({})')
df['consequents'] = df['consequents'].str.strip('({})')

Tags: csv数据文本boxsupportdfstriplunch
2条回答

通过agg()尝试:

cols=['antecedents','consequents']
df[cols]=df[cols].astype(str).agg(lambda x:x.str.strip("frozenset({''})"),1)

通过str.strip()分两步进行:

df['antecedents'] = df['antecedents'].astype(str).str.strip("frozenset({''})")
df['consequents'] = df['consequents'].astype(str).str.strip("frozenset({''})")

通过apply()

cols=['antecedents','consequents']
df[cols]=df[cols].astype(str).apply(lambda x:x.str.strip("frozenset({''})"),1)   

您可以尝试以下方法:

df['antecedents'] = df['antecedents'].str.replace("frozenset({''})", "")
df['consequents'] = df['consequents'].str.replace("frozenset({''})", "")

相关问题 更多 >

    热门问题