python - 如何将相同的功能应用于多个列表
问题描述
我有两个列表,想对两者应用相同的功能,我知道如何一次应用一个,但不能同时应用两个?然后我想添加每个元素来收集一个总数?
a = ['a','b','c','d','e']
b = ['b', np.nan,'c','e','a']
c = ['a','b','c','d','e']
我知道你可以在下面做得到输出,但我想用 serparation 来做
a = [1 if 'a' in a else 99 for x in a]
b = [1 if 'a' in b else 99 for x in b]
c = [1 if 'a' in c else 99 for x in c]
我首先想在下面输出:
a = [1, 99, 99, 99, 99]
b = [99, 99, 99, 99, 1]
c = [99, 99, 99, 99, 1]
然后将每个元素添加到一个最终列表中
sum = [199, 297, 297, 297, 101]
解决方案
pandas 让这很容易(尽管我确信它和 numpy 一样简单)
import pandas
df = pandas.DataFrame({'a':a,'b':b,'c':c})
mask = df == 'a'
df[mask] = 1
df[~mask] = 99
df.sum(axis=1)
推荐阅读
- keycloak - Keycloak:通过 CLI 创建用户时未分配角色
- node.js - GraphQL 解析器包含在节点进程而不是服务器中?
- javascript - 使用 async/await 在另一个内部运行异步函数无法连接/获取资源
- vim - 使用带有汉字的pandoc时如何禁用空格?
- c - C 编程通过套接字发送文件问题
- certificate - 如何使用协同设计命令
- c# - windows和linux日期时间的区别
- html - 如何使用来自 HTML 的##(th 或 nd 或 st)从 html 格式中提取特定事件的正则表达式日期
- javascript - 我的代码使用带有 ajax 的 json 有一些问题?
- c# - 单元测试检查边缘情况的发生