m0_70939172 2023-06-10 15:54 采纳率: 50%
浏览 133
已结题

Python怎么去掉这个deprecationWarning警告

img


警告:
C:\Users\DELL\PycharmProjects\pythonProject\venv\lib\site-packages\mlxtend\frequent_patterns\fpcommon.py:110: DeprecationWarning: DataFrames with non-bool types result in worse computationalperformance and their support might be discontinued in the future.Please use a DataFrame with bool type
warnings.warn(
代码:

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder

data = [['西红柿', '排骨', '鸡蛋'],
        ['西红柿', '茄子'],
        ['鸡蛋', '袜子'],
        ['西红柿', '排骨', '茄子'],
        ['西红柿', '排骨', '袜子', '酸奶'],
        ['鸡蛋', '茄子', '酸奶'],
        ['排骨', '鸡蛋', '茄子'],
        ['土豆', '鸡蛋', '袜子'],
        ['西红柿', '排骨', '鞋子', '土豆']]
data = [list(set(d)) for d in data]

# 获取所有可能出现的物品
items=['土豆','排骨','茄子','袜子','西红柿','酸奶','鞋子','鸡蛋']
te = TransactionEncoder()
data = te.fit_transform(data, sparse=False).astype(int)# data = te.fit_transform(data)

df1 = pd.DataFrame(data, columns=te.columns_)

df = df1.reset_index(drop=True).rename(columns={'index': 'I'})

df.insert(0, 'ID', ['I{}'.format(i) for i in range(1, len(df)+1)])




df = df.reset_index(drop=True)
df.columns.name = None

print(df)


# 计算关联规则
rules = [('西红柿','排骨'), ('排骨','西红柿'), ('袜子','鸡蛋'),
         ('茄子','排骨'), ('茄子','西红柿'), ('茄子','鸡蛋')]

from mlxtend.frequent_patterns import apriori, association_rules

# 计算频繁项集
freq_itemsets = apriori(df1, min_support=0.2, use_colnames=True)

# 计算关联规则
rules = association_rules(freq_itemsets, metric="confidence", min_threshold=0.5)
rules = rules.sort_values(by=['confidence'], ascending=False)
pd.options.display.float_format = '{:.6f}'.format

# 输出结果
print(rules[['antecedents', 'consequents', 'support', 'confidence']])

  • 写回答

3条回答 默认 最新

  • 微软技术分享 优质创作者: 编程框架技术领域 2023-06-10 16:15
    关注

    您好,这个警告无法去掉,只能被忽略吧,给你一个忽略的方法,但是我并不建议忽略这些因为这对于调试解决问题很重要。

    忽略警告,可以使用warnings模块,设置忽略选项,如下代码所示。

    import warnings
    warnings.filterwarnings("ignore", category=DeprecationWarning)
    

    当然,也可以使用filterwarnings函数直接把消息过滤掉,看你选择哪一种了,都可以。

    import warnings
    warnings.filterwarnings("ignore", message="DataFrames with non-bool types")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月2日
  • 已采纳回答 6月24日
  • 创建了问题 6月10日