python - 如何比较 python 中的一些列表并将它们添加到数据框中?
问题描述
我有四个列表包含不同的数字,如下所示:
list1 = [399826, 399827, 413350, 404450, 399827, 404451]
list2 = [399825, 399826, 412450, 403650, 391227]
list3 = [412450, 399827]
list4 = [399829, 399246, 513350, 404370, 789827, 439931, 404451]
关于列表,列表之间存在重叠。我将制作一个数据框,其中显示一组所有数字和它们所属的列表的名称。像这样:
数字 | 列表1 | 清单2 | 清单3 | 清单4 |
---|---|---|---|---|
399826 | 真的 | 真的 | 错误的 | 错误的 |
399827 | 真的 | 错误的 | 真的 | 错误的 |
413350 | 真的 | 错误的 | 错误的 | 错误的 |
412450 | 错误的 | 真的 | 真的 | 错误的 |
ETC | ... | ... | ... | ... |
为了比较列表,我在这里使用了一个函数:
def returnNotMatches(a, b):
a = set(a)
b = set(b)
return list(b - a)
但我不知道如何正确制作数据框。
解决方案
首先为新列名按列创建字典,然后在值中dicts
使用s 创建并创建,最后将s 替换为s:True
DataFrame
NaN
False
list1 = [399826, 399827, 413350, 404450, 399827, 404451]
list2 = [399825, 399826, 412450, 403650, 391227]
list3 = [412450, 399827]
list4 = [399829, 399246, 513350, 404370, 789827, 439931, 404451]
d = {'list1':list1,'list2':list2,'list3':list3,'list4':list4 }
df = pd.DataFrame({k: dict.fromkeys(v, True) for k, v in d.items()}).fillna(False)
print (df)
list1 list2 list3 list4
399826 True True False False
399827 True False True False
413350 True False False False
404450 True False False False
404451 True False False True
399825 False True False False
412450 False True True False
403650 False True False False
391227 False True False False
399829 False False False True
399246 False False False True
513350 False False False True
404370 False False False True
789827 False False False True
439931 False False False True
推荐阅读
- javascript - 在将输入保存到数据库之前如何检查密码是否与确认的密码相同(猫鼬+快递+验证器)
- javascript - Discord.Js TypeError:无法读取未定义的属性“地图”
- mysql - 索引正在处理一个列,但不能处理同一表的另一列 iN mysql PHPMYADMIN
- java - Android:getRotationMatrix() 和 getInclination() 方法返回的“磁倾角”究竟是什么?
- qt - 在运行 Qt App 之前,在 Raspberry Pi 启动时运行启动画面
- g++ - C++ 错误消息:致命错误:wchar.h:没有这样的文件或目录
- php - 如何根据虚拟列过滤 Eloquent 查询?
- java - 使用 Java 和 selenium webdriver 和黄瓜框架进行 gmail 登录的 SnapDeal 自动化
- flutter - 为什么颤动的“返回顶部按钮”不起作用
- html - 为什么最后一个表格行不遵循 text-align center CSS?