我在一个数据框中有以下数据。
JAN FEB MAR 2019 MAR YTD 2018 MAR YTD
99.8 98.6 98.7 99.0 99.1
100.0 99.0 97.9 98.8 99.2
99.5 98.0 99.7 99.2 99.9
100.0 97.2 98.9 98.5 100.0
100.0 100.0 100.0 100.0 100.0
100.0 94.7 100.0 98.7 99.5
97.6 100.0 100.0 99.3 100.0
100.0 96.6 100.0 99.2 100.0
100.0 97.0 99.4 99.1 97.3
100.0 98.2 100.0 99.6 97.0
100.0 86.7 94.6 94.8 99.9
100.0 100.0 99.5 99.7 98.5
100.0 100.0 100.0 100.0 97.9
100.0 100.0 100.0 100.0 98.9
100.0 100.0 97.1 98.5 99.6
100.0 100.0 100.0 100.0 98.2
100.0 100.0 100.0 100.0 98.1
如果第1行中的值包含单词“ YTD”,我想提取特定的列数据。 我想使用关键字搜索而不是列和行单元格引用。 我还希望代码在确定第一个“ YTD”值后中断。
因为,我正在使用openplex和panda来提取和写入数据。我使用以下代码: min_column = report_sheet1.min_column
对于范围内的j(行= 6,列= min_column + 1): 如果j中的“ YTD”: 打破
ff_sheet1.cell(row = insert_col + start_row,column = header ['YTD'],value = report_sheet1.cell(row = i + 0,column = j).value)
但是然后,我收到“ range()不带关键字参数”错误
我不知道该怎么做。任何帮助将不胜感激
答案 0 :(得分:0)
听起来regex可能有用!也许您可以按照以下方式做一些事情:
import re
c = [label for label in dataframe.columns if re.search('YTD', label) != None]
这应该提供列的列表,其标签包含子字符串“ YTD”。
我对熊猫不太熟悉,所以可能有比我建议的方法更简单的方法。我不确定这是否能完全回答您的问题,但也许有帮助!
答案 1 :(得分:0)
您可以单行执行此操作:
[df[x] for x in df.columns if 'YTD' in x][0]
将为您提供符合您要求的第一列