다음 코드를 사용하여 헤더를 기반으로 컬럼을 호출했습니다.헤더가있는 csv 파일에서 데이터 호출하기 Python
def GetValuesFromColumn(title):
values = []
rownum = 0
with open(file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if rownum == 0:
index = row.index(title)
rownum = 1
else:
values.append(row[index])
return values
괜찮습니다. 그러나 나는 현재 같은 헤더를 가진 하나 이상의 행이있을 수있는 파일에 대해 작업하고 있으며 스크립트는 첫 번째 열만을 제공합니다. 대신 특정 단어가 있는지 확인하여 열을 호출하고 싶습니다. 예를 들어 '데이터'라는 이름의 열이 3 개 있다고 가정합니다. 첫 번째 데이터 열이 나는이 형식의 첫 번째 데이터 열에서 데이터를 '조직'전화를받을 수 있도록하고 싶습니다 다음
data,data,data
ab tissue, cell: b cells, organism: human
bc gf tissue, cell: d cells, organism: human
bc gf tissue, cell: e cells, organism: human
아래 같은 생물에 대한 세 번째 조직에 대한 정보, 세포에 대한 두 번째,이 -
ab,bc gf
. 어떻게해야합니까?
첫 번째 데이터 열에 조직에 대한 정보가 있음을 알기 위해 코드에서 사용하는 규칙은 무엇입니까? 유일한 대답은 "데이터를 읽고 인간이하는 방식을 이해하고 추측해야합니다"라고 말하면 코드 작성이 매우 어려울 것입니다. – abarnert
@abarnert 열에 조직에 관한 데이터가있는 경우 즉, '조직'이라는 단어가있는 경우이를 추출하여 변수 '조직'또는 기타 항목에 할당하면됩니다. 그러나 변수 '조직'은 실제 단어 '조직'을 가져서는 안되지만 조직 이름 (예 : 위의 예에서 ab, bc 등)을 가져야합니다. – abn
줄을 읽고 첫 번째 열을 가져 오거나, 또는'split (',')'을 사용하여. 그런 다음 'tissue'라는 단어가 인덱스 0에있는 문자열에 있는지 확인하고, 그렇다면 공백을 기반으로 문자열을 다시 분할 한 후 인쇄하십시오. 'value = 'ab tissue'라고하면'value.split ('') [0]' – T90