新手技术问询:如何用Pandas查找含指定字符串的单元格位置
查找包含指定字符串的单元格位置
嗨,作为数据分析新手,用Python的pandas库来解决这个查找问题简直完美!我结合你的示例数据,一步步教你找到字符串"CAD 2.00"的位置:
第一步:准备你的数据
首先我们把你给出的示例数据转换成pandas的DataFrame(这是数据分析里常用的表格数据结构):
import pandas as pd # 按照你的数据创建DataFrame data = { 'Price': [947.2, 129.3, 161.69], 'Rate p/lot': [1.25, 2.1, 0.8], 'Total Comm': ['CAD 1.25', 'CAD 1.25', 'CAD 2.00'] } df = pd.DataFrame(data)
第二步:定位目标字符串
接下来我们写代码找到"CAD 2.00"的位置,代码逻辑很直观:
target_str = "CAD 2.00" # 生成布尔掩码:每个单元格如果等于目标字符串就标记为True match_mask = df.eq(target_str) # 堆叠数据并筛选出所有匹配的位置 matched_positions = list(match_mask.stack()[match_mask.stack()].index) # 提取第一个匹配的位置(你的示例里只有一个匹配项),转成元组 result = tuple(matched_positions[0]) if matched_positions else None print(result) # 输出结果:(2, 2)
代码逻辑解释
df.eq(target_str):生成一个和原表格一样大小的布尔表,符合条件的单元格会被标记为Truematch_mask.stack():把列索引转换为二级行索引,这样我们能轻松筛选出所有True对应的位置- 最后我们把第一个匹配的位置转成元组,就得到了你预期的
(2,2)(这里的索引是从0开始计数的,对应第三行第三列)
如果你的数据里有多个和目标字符串匹配的单元格,matched_positions会返回所有匹配的位置列表,你可以根据需求进一步处理~
内容的提问来源于stack exchange,提问作者Piyush S. Wanare
相关产品推荐
相关产品推荐

