python - 如果元组中的项目不在其他数据帧的列表中,则删除元组
问题描述
如果我有一个元组列表,以及另一个元组应该有条件的列表:
my_list=['a','e']
my_list1= ['a','b','a','c','b','d','e','f','a','h']
v=[data for data in zip(my_list1,my_list1[1::1])]
del v[1::2]
现在只保留我使用的 my_list 中包含 elemtns 的元组
v = [tup for tup in v if any(c in my_list for c in tup)]
现在返回[('a', 'b'), ('a', 'c'), ('e', 'f'), ('a', 'h')]
我想在数据帧上执行相同的操作
df15=pd.DataFrame({'names':[['a','c'],['k','f']]})
df14=pd.DataFrame({'tup':[[('a','g'), ('b','h'), ('c', 'i')],[('d', 'j'), ('e', 'k'), ('f', 'l')]]})
但打电话
for index,row in df14.iterrows():
df15['tup']=[tup for tup in df14['tup'] if any(c in df15.names for c in tup)]
返回此错误:
值的长度与索引的长度不匹配
预期输出将是
df15
names tup
0 ['a','c'] [('a','g'),('c', 'i')] #not necessary to keep the tuples
1 ['k','f'] [('e', 'k'),('f','l')]
解决方案
推荐阅读
- javascript - 在编辑输入数字格式时保留撤消功能
- reactjs - 如何在反应中重新呈现相同的组件页面?
- java - 一对多映射关系未正确保存数据
- docker - 如何列出所有容器的 docker 日志大小?
- spring-boot - 假装下载文件
- javascript - Prisma:如何根据非唯一列查询记录
- oracle - 如何创建触发器,以便不能插入早于 2017 年和晚于 2019 年的日期
- c++ - C++ STL 按值设置擦除
- excel - 当 redemption.dll 加载并且操作 excel 2016 在从磁盘启动保存的文件之前暂停
- windows - 如何在服务器机器上保持客户端密码安全