python - Pandas:如果行中有匹配项,则返回列名
问题描述
我正在使用 Python 中的熊猫。当一行的一个单元格与同一行中的另一个单元格匹配时,我试图返回一列的名称。这是一个例子:
City 1 City 2 City 3 City 4 1 2 3 4 5
0 New York London Paris Tokyo London Tokyo New York Paris X
1 Paris New York London Tokyo Tokyo London New York Paris X
我正在寻找与 City 1 列(值是纽约)的下一个巧合。在第一行中,该匹配项位于名为“3”的列中。然后,我想在第 5 列中,其中 X 应该出现“3”,因为“纽约”出现在“3”列中。下一个相同...我会查找与 City 1(巴黎)的匹配,然后第 5 列应显示“4”,因为巴黎在该列中。
我希望我已经正确解释了。你对如何做有什么建议吗?提前致谢!
解决方案
假设您正在检查 City 1 的下一次出现
df[5] = df.apply(lambda x: x[x == x['City 1']].index[-1], axis = 1)
City 1 City 2 City 3 City 4 1 2 3 4 5
0 New York London Paris Tokyo London Tokyo New York Paris 3
1 Paris New York London Tokyo Tokyo London New York Paris 4
推荐阅读
- mysql - 关于 case 语句中 sum 的正确使用
- python - 将系列写入文本文件
- typescript - 在 Typescript 中,`object` 和 `Record 类型之间有区别吗
`? - javascript - 无法将 KML 文件渲染到谷歌地图中
- dom - Xpath 开始在 Scrapy 上重新调整 None
- java - 错误:原因:java.lang.NullPointerException
- python - 将批处理 (.bat) 脚本转换为 bash 或 python
- java - Spring MVC 无法从 Controller 中的资源访问文本
- git - gitignore 规则始终包含具有特定名称的文件夹
- python - Django 方法存在()不起作用,错误“分配前引用”