如何用Pandas定位CSV中首次出现FFC的行及其前两行?
用Pandas查找第一个FFC行及上方第二行的实现方案
首先,先把你提供的CSV数据整理成标准格式(你也可以直接用本地文件路径读取):
Record,Time,Value 1,Value 2,Value 3 Event 1,20,35,40 Event 2,48,43,56 Event 3,45,58,90 FFC 4,12,89,94 FFC 5,30,25,60 Event 6,99,45,13
下面是具体的实现代码,每一步都做了清晰说明:
import pandas as pd # 读取数据(本地文件替换成pd.read_csv("你的文件路径.csv")即可) csv_content = """Record,Time,Value 1,Value 2,Value 3 Event 1,20,35,40 Event 2,48,43,56 Event 3,45,58,90 FFC 4,12,89,94 FFC 5,30,25,60 Event 6,99,45,13""" df = pd.read_csv(pd.io.common.StringIO(csv_content)) # 定位第一个包含"FFC"的行的索引 first_ffc_index = df[df['Record'].str.contains('FFC')].index[0] # 获取目标行:第一个FFC行,以及它往上数第二行 target_ffc_row = df.loc[first_ffc_index] row_two_above = df.loc[first_ffc_index - 2] # 打印结果 print("第一个FFC所在的完整行:") print(target_ffc_row) print("\n该行往上数第二行:") print(row_two_above)
代码细节解释:
- 数据读取:这里用字符串模拟CSV内容方便测试,实际开发中直接用
pd.read_csv()加载本地文件即可。 - 定位FFC行:通过
str.contains('FFC')筛选出所有Record列包含FFC的行,再取筛选结果的第一个索引,就是我们要找的第一个FFC行位置。 - 获取上方第二行:利用索引偏移
first_ffc_index - 2定位目标行,再用loc方法取出整行数据。 - 容错提示:如果第一个FFC行的索引小于2(比如它是前两行),
first_ffc_index - 2会出现负索引,这时候可以根据需求添加判断逻辑避免报错。
内容的提问来源于stack exchange,提问作者bigballerbrand
相关产品推荐
相关产品推荐

