2009-10-25 5 views
0

분석 할 열 목록이 있습니다. data [1] [2]와 같은 특정 인덱스를 다시 참조하는 대신 열에 이름을 지정하고 다른 작업에 대한 열의 행을 반복하고 싶습니다. 어떻게 컬럼에 이름을 부여한 다음 이것을 다시 참조 할 올바른 형식입니까?열 이름을 지정한 다음 색인 대신 이름이있는 항목을 호출합니다.

for x in range (len(data)): 
    if [column_name][x] .... 
+0

Python에서는이 코드를 사용할 수 있습니까? 자세한 정보가 필요합니다 ... –

+0

예, 죄송합니다, 파이썬입니다. 제안 된 솔루션을 사용하려고하지만 운이 좋지는 않습니다. 문자열로 색인을 생성 할 수 없다는 오류가 발생합니다. 열 이름을 지정하고 성공적으로 참조하는 데 문제가 있습니다. 데이터는 txt 문서에서 가져온 것입니다. 내 두 번째 열은 ID이고 세 번째 열은 가중치이고 네 번째 열은 높이입니다. 어떻게 이름을 지어 되돌려 줍니까? –

답변

0

필자가 원하는 것은 변수에 열을 저장 한 다음 항상 아래 첨자를 사용하는 대신 참조하는 것입니다. 충분히 간단한 : 그에 대한

varName=data[columnName] 

그 칼럼에 액세스

varName[rowName] 트릭

2

귀하의 데이터에 액세스하는 대신 정수의 이름을 사용하는 가장 쉬운 방법은 어떻게해야는 사전

data = {'pig':[1, 2], 'cow':[3, 4], 'dog':[5,6]} 

if data in range(2): 
    if data['dog'][1]==4:... 
을 사용하는 것입니다

다른 방법이 있습니다. 예를 들어 클래스를 만들고 __getitem__을 재정의 할 수 있습니다. 또는 dog=2 등과 같이 2 차원 배열의 열 번호에 변수 이름을 지정할 수 있습니다. 그것은 모두 당신이하고 싶은 일에 달려 있습니다.

3

다양한 방법이 있습니다. 당신은 당신의 코드를 작성할 때 이름과 열 사이의 관계를 알고있는 경우에, 지금까지 가장 쉬운 방법은 이것이다 :

for row in data: 
    (foo, bar, baz, bat) = row 

... 당신이 row (및 data)를 업데이트 할 필요가 없습니다 가정.

행을 업데이트해야하는 경우 값을 변수에 복사해도 작동하지 않습니다. 색인을 통해 항목을 조작해야합니다.

(foo, bar, baz, bat) = range(4) 
for row in data: 
    row[foo] = row[bar] 

당신은 자신의 이름이 포함 된 문자열에 의해 열을 참조 할 경우, 그 키를 사전에 행을 복사해야이 열 이름 :이 경우에 aviraldg의 접근 방식은 간단합니다 . 그런 다음 사전 조작을 마쳤 으면 원래 목록을 업데이트하거나 새로운 코드로 교체해야합니다 (이 코드의 기능).

columns = ("foo", "bar", "baz", "bat") 
for i in range(len(data)): 
    d = dict(zip(columns, data[i])) 
    d["foo"] = d["bar"] 
    data[i] = [d[col] for col in columns] 
관련 문제