python - 如何从长度不等的列表中创建假人数据框?
问题描述
我有一个字典,其中每个键都是一个行索引,每个值都是一个虚拟值列表。例如:
my_dict = {'row1': ['a', 'b'], 'row2': ['a'], 'row3': ['b', 'c']}
我可以以有效的方式创建具有上述内容的假人数据框吗?
>>> df
a b c
row1 True True False
row2 True False False
row3 False True True
解决方案
您可以使用pd.get_dummies
:
u = pd.DataFrame.from_dict(my_dict, orient='index')
pd.get_dummies(u, prefix='', prefix_sep='').max(level=0, axis=1).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True
您也可以使用简洁的stack
and str.get_dummies
,但这会稍微慢一些。
u.stack().str.get_dummies().max(level=0).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True
推荐阅读
- android - 电影分析 Xamarin , Android, iOS
- python - 为什么 sleep 在我的代码之前运行?- Python
- mysql - 选择MySql表中值大于到零的所有行(十进制类型)
- llvm - llvm 错误 - 错误预期指令操作码
- ssl - 移动设备上的 Chromium(Chrome、Brave)停止信任我的本地 LetsEncrypt 证书
- mysql - 错误 1045 (28000): 拒绝用户 'root'@'localhost' 的访问
- android - 带有实时数据的 Kotlin Elvis 声明
- php - 如何基于 prod 配置的符号链接设置暂存环境,而不显示调试信息?
- sql - 如何在 SQL Server 中“复制”一行?
- java - JDBC SqlSyntaxErrorException 但语句在 SQL 工具中有效