python - Pandas Dataframe 使用值作为标签
问题描述
我有这个数据框,它有很多行,每一行都有购买的物品的数量,然后是所有物品的名称,每列一个。如果项目数少于列数,则存在 NaN 值。
Count Column1 Column2 Column3 Column4
0 1 a NaN NaN NaN
1 3 c a b NaN
2 2 e b NaN NaN
3 4 b c d f
我需要一个数据框,其中包含项目的标签和值 True 或 False,取决于该行中是否存在项目。
Count a b c d e f
0 1 True False False False False False
1 3 True True True False False False
2 2 False True False False True False
3 4 False True True True False True
我不知道我怎么能得到这个。
编辑:找到适合我的解决方案:
from mlxtend.preprocessing import TransactionEncoder
dataset = df.drop('Count', axis=1).T.apply(lambda x: x.dropna().tolist()).tolist()
te = TransactionEncoder()
te_ary=te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
解决方案
尝试使用set_index
+stack
重塑pd.get_dummies
然后sum
level=0:
pd.get_dummies(df.set_index('Count').stack()).sum(level=0).astype(bool).reset_index()
Count a b c d e f
0 1 True False False False False False
1 3 True True True False False False
2 2 False True False False True False
3 4 False True True True False True
推荐阅读
- laravel - Laravel 中间件身份验证重定向
- sql - 为 datediff 指定的参数 1 无效
- javascript - JavaScript - 不同浏览器中的不同执行/加载顺序
- ssl - 密码验证失败
- r - ggplot中的不同构面标题
- javascript - 如何构建安全的图片投票系统
- python - django REST API 调用来自不同 python 环境的脚本
- android - Android jetpack 导航抽屉布局不会替换项目选择工具栏上的整个片段仍然可见
- airflow - 同一 dag 中具有不同计划的 Airflow 任务
- javascript - 尽管距离变化,如何保持速度持续时间相同