python - 使用列标题查找匹配值并在该行的匹配列中获取值
问题描述
我有一个数据框
ID | calls_to_cust| 1 | 2 | 3| 4 | 5
123| 3 | 43| 12| 12| 3 | 42
133| 2 | 42| 32| 13| 4 | 7
134| 6 | 42| 32| 13| 4 | 7
我的结果应该是
ID | calls_to_cust| 1 | 2 | 3| 4 | 5 |value
123| 3 | 43| 12| 12| 3 | 42 |12
133| 2 | 42| 32| 13| 4 | 7 |32
134| 6 | 42| 32| 13| 4 | 7 |7
我想在列标题中查找值,calls_to_cust
并使用该行和列号的匹配值作为新列中的值value
def match(x):
for i in x.columns:
if x['total_calls_hcp'] == i:
return i.value()
else:
return 0
我尝试编写一个函数,但没有成功。我不能使用 df.lookup 因为值是浮动的并且会抛出错误。
编辑:如果该值不存在,那么我想提取最大值
解决方案
尝试:
df["value"] = df.apply(lambda x: x[str(x["calls_to_cust"])], axis=1)
print(df)
印刷:
ID calls_to_cust 1 2 3 4 5 value
0 123 3 43 12 12 3 42 12
1 133 2 42 32 13 4 7 32
推荐阅读
- java - 当使用 Jackson 存在互斥字段时抛出异常的通用方法
- twitter-bootstrap - 获取隐藏的表单值并以模式显示
- jenkins - 在 Jenkins 中运行我的赛普拉斯测试时出现跨源错误
- html - 如果值为 0 或为空,如何隐藏按钮?
- azure - 资源 Skus API 返回冲突信息
- python - 如果时间是列表中的最后一个,Python会查找明天的日期
- python - 按日期对数据框进行分组,以使用 pandas 从 svm 算法中提取每日结果
- javascript - ES6在另一个类中调用方法,使用模块
- ruby-on-rails - 无法在 Rails 中配置 cancancan
- android - Android 帮助、SDK