CSV 파일을 읽고 거기에서 필요한 데이터를 추출하려고합니다. 내 코드는 다음과 같습니다. sample.csv 내가 출력에서 첫 번째 열을 제외하려면 csv 파일을 읽을 때 첫 번째 열 건너 뛰기 Python
h1,h2,h3
a data,data: abc,tr
b data,vf data, gh
k data,grt data, ph
sample.csv 아래 같이 보입니다
import csv
file = "sample.csv"
def get_values_flexibly(file, keyword):
def process(func):
return set([func(cell)] + [func(row[index]) for row in reader])
with open(file, 'r') as f:
reader = csv.reader(f)
first_row = reader.next()
if keyword in first_row:
return str(list(set([row[first_row.index(keyword)] for row in reader])))
for index, cell in enumerate(reader.next()):
if cell.endswith(' ' + keyword):
return str(list(set(process(lambda cell: cell[:-len(keyword) - 1]))))
elif cell.split(':')[0].strip() == keyword:
return str(list(set(process(lambda cell: cell.split(':')[1].strip()))))
print get_values_flexibly(file, 'data')
. 현재 출력은 ['a','k','b']
입니다. 그러나 ['abc', 'vf', 'grt']
이되고 싶습니다. csv reader를 사용하여 어떻게 이것을 할 수 있습니까?
EDIT- 여러 파일이 있습니다. 각 파일은 다른 헤더를 가질 수 있으며 열의 수가 너무 다양합니다. 모든 파일에서 작동하는 스크립트를 갖고 싶습니다. 또한 첫 번째 열의 머리글은 항상 동일하며 예를 들어 "sample_column"입니다. 머리글 "sample_column"이있는 열의 데이터를 건너 뛰고 싶습니다.
키워드는 항상'data' 될 것인가? – BorrajaX
@BorrajaX 아니오. 내용은 다양합니다. – abn
정규 표현식을 사용하여 셀의'keyword' 청크를 제거 할 수 있습니까? – BorrajaX