循环对 PANDAS 数据帧进行一次热编码质量检查
Posted
技术标签:
【中文标题】循环对 PANDAS 数据帧进行一次热编码质量检查【英文标题】:Loop for one hot encoding quality checks for PANDAS dataframes 【发布时间】:2022-01-18 03:17:31 【问题描述】:我需要编写一个循环来检查一个热编码是否正确完成(这意味着发票的值:1 在错误的列中或某些发票对一个变量有多个 1 等的情况),需要将数据框作为输出,展示每个发票/行的潜在错误列表。
这里我有这两个数据框:
Invoice_ID_raw:
Invoice ID | Type of purchase | Paid |
---|---|---|
1233 | Remote | CASH |
4566 | Paid upon arrival | CARD |
4458 | Remote | IN ADVANCE |
Invoice_ID_after_one_hot
Invoice ID | Type of purchase_Remote | Type of purchase_Paid upon arrival | Paid_CASH | PAID_CARD | PAID_IN ADVANCE |
---|---|---|---|---|---|
1233 | 1 | 0 | 1 | 0 | 0 |
4566 | 0 | 1 | 0 | 1 | 0 |
4458 | 1 | 0 | 0 | 0 | 1 |
作为循环输出的所需数据框布局
Invoice ID | Type of purchase_correct_encoding? | Paid_correct_encoding? |
---|---|---|
1233 | Correct | Correct |
4566 | Correct | Correct |
4458 | Correct | NOT CORRECT |
请您帮忙,因为我仍然是 Python 的新手。将不胜感激!
【问题讨论】:
请不要发布数据图像,因为我们无法对其进行测试。相反,直接在代码块中发布 DataFrame(s) 和预期输出的示例。这使我们能够轻松地重现您的问题并为您提供帮助。否则,你得到任何答案的概率很低。花时间阅读How to create a Minimal, Reproducible Example 和How to make good reproducible pandas examples 并相应地修改您的问题。 明白了,会调整的。谢谢! 我看到你已经更新了,现在好多了,谢谢!但是,预期的输出仍不清楚。我认为最好详细说明一个带有错误的热编码结果的示例,然后共享预期的输出,即“显示每个发票/行的潜在错误列表的数据框”。 【参考方案1】:您可以使用pd.getdummies()
:
pd.get_dummies(df[['Type of purchase', 'Paid']]).drop(columns=['Paid_IN ADVANCE'])
【讨论】:
谢谢,但我需要一些不同的东西,因为编码是使用 pd.get_dummies 完成的,我尝试编写的是一个循环来检查 pd.get_dummies 是否正确完成,这意味着 1 和 0 在每行(发票)的适当虚拟列。以上是关于循环对 PANDAS 数据帧进行一次热编码质量检查的主要内容,如果未能解决你的问题,请参考以下文章
使用 sklearn 或 pandas 进行一次热编码后,如何在混合数据集(数值 + 分类)上应用 KNN