python-3.x - 如何删除字典 pandas env 列表中的键/值对
问题描述
我想在代码片段中运行 applymap() re data。
我尝试使用此代码从列表中丢弃键“P”:
d = [i for i in data if not (i['P'] == 5.5|4.5)],
我得到:
TypeError: list indices must be integers or slices, not str
目标:是消除键“P”及其值,并在我可以 applymap() 之前消除“空列表”
**Desired Result** after running applymap() to ['A']
0 2.165\n1.675
1 1.895\n1.888
2 2.085\n1.73
3 2.275\n1.616
4 1.685\n1.65
5 2.448\n2.085.....
However, with 'P' key & empty [] this is not possible hence.
如何在 Pandas/DataFrame 环境中执行此操作?
data =
[[{'A': 2.165, 'G': 19, 'T': 180}, {'A': 1.675, 'G': 19, 'T': 181}],
[{'A': 1.895, 'G': 19, 'T': 180}, {'A': 1.888, 'G': 19, 'T': 181}],
[{'A': 2.085, 'G': 19, 'T': 180}, {'A': 1.73, 'G': 19, 'T': 181}],
[{'A': 2.275, 'G': 19, 'T': 180}, {'A': 1.616, 'G': 19, 'T': 181}],
[{'A': 1.685, 'G': 15, 'P': 5.5, 'T': 12},
{'A': 1.65, 'G': 62, 'P': 4.5, 'T': 13}],
[{'A': 2.448, 'G': 19, 'T': 180}, {'A': 1.54, 'G': 19, 'T': 181}],
[{'A': 2.085, 'G': 19, 'T': 180}, {'A': 1.73, 'G': 19, 'T': 181}],
[],
]
解决方案
正如评论中所讨论的,您可以将列表理解与过滤器结合使用来满足您的需求:
['\n'.join(str(e['A']) for e in row if 'A' in e) for row in data if row]
# ['2.165\n1.675',
# '1.895\n1.888',
# '2.085\n1.73',
# '2.275\n1.616',
# '1.685\n1.65',
# '2.448\n1.54',
# '2.085\n1.73']
推荐阅读
- ios - 在 Alamofire 请求中发送请求正文数组
- security - 什么是容器?和gVisor?
- python - 通过多个分隔符拆分并保留分隔符
- java - RSS 提要应用程序在不同的 Android 版本上无法正常工作
- clojure - 如何打破clojure宏中的递归条件?
- java - Json, Java, Parsing(如何只获取json的一部分
- android - 分片成束
- python - 如何将字符串的最后五个字母大写并在用户输入时创建一个字符串
- c++ - 参数未知数据类型的可变参数函数
- javascript - Django Rest Framework + ReactJS:我的 API 有什么问题?