使用Pandas提取Excel中所有含20DV单元格对应列数据的问题
Pandas提取所有含指定内容的列数据
你的代码只拿到第一个匹配列,是因为找到第一个符合条件的列后直接赋值给了destination,没有收集后续的匹配项。下面给两种解决方法:
方法一:改进循环收集所有匹配列
初始化一个列表来存储所有符合条件的列名,循环过程中把匹配到的列名逐个加进去:
# 初始化空列表存匹配列名 destination_cols = [] for col in range(len(df.columns)): if df.iloc[0, col] == '20DV': destination_cols.append(df.columns[col]) # 提取所有匹配列的完整数据 result_df = df[destination_cols]
方法二:用Pandas布尔索引(更高效)
直接利用Pandas的向量操作筛选列,不用写循环,代码更简洁且性能更好:
# 筛选第0行值为'20DV'的所有列 matching_cols = df.columns[df.iloc[0] == '20DV'] # 提取这些列的数据 result_df = df[matching_cols]
如果需要的是列名列表就用destination_cols或matching_cols,如果需要列的完整数据就用result_df。
内容的提问来源于stack exchange,提问作者Radhika
相关产品推荐
相关产品推荐

