CSV의 특정 열에서 데이터를 추출하기 위해 Python의 기본 제공 필터 함수를 사용하려고합니다. 필터 기능을 잘 사용하고 있습니까? 먼저이 열의 데이터를 정의해야합니까, 아니면 파이썬이 어떤 열에 어떤 데이터가 들어 있는지 알 수 있습니까?Python의 필터 함수 사용
1
A
답변
2
(또는 일반적으로 어떤 반복자) 특정 조건을 만족하는 요소. 그것은 인덱스 기반 선택을위한 것이 아닙니다. 따라서 은을 사용하여 CSV 파일의 지정된 열을 찾아 낼 수 있지만 권장하지는 않습니다. 관심의 열 반복자를 생성하는 것이 더있을 수 있습니다, 당신은 레코드하고 정확히에
with open(filename, 'rb') as f:
for record in csv.reader(f):
do_something_with(record[0], record[2])
따라 : 대신 당신은 아마이 같은 것을 사용한다
with open(filename, 'rb') as f:
the_iterator = ((record[0], record[2]) for record in csv.reader(f))
# do something with the iterator
또는, 비 순차적 처리가 필요한 경우 아마도 목록 일 수 있습니다.
with open(filename, 'rb') as f:
the_list = [(record[0], record[2]) for record in csv.reader(f)]
# do something with the list
데이터를 열에 정의하면 무엇을 의미하는지 모르겠습니다. 데이터는 CSV 파일로 정의됩니다. 이에 비해
, 여기 당신이 filter
을 사용할 것하는 경우입니다 : CSV 파일이 숫자 데이터를 포함한다고 가정하면 숫자가 엄격 내에서 증가하는 순서로되는 기록의 목록을 구축해야 행. 당신은 번호 목록이 엄격하게 증가하는 순서에 있는지 여부를 결정하는 함수를 작성할 수
def strictly_increasing(fields):
return all(int(i) < int(j) for i,j in pairwise(fields))
이 (
pairwise
의 정의에 대한
itertools
documentation 참조). 물론
with open(filename, 'rb') as f:
the_list = filter(strictly_increasing, csv.reader(f))
# do something with the list
, 같은 일이 수, 보통, 지능형리스트로 구현 될 것이다 : 그럼 당신은 filter
의 상태로 사용할 수 있습니다
with open(filename, 'rb') as f:
the_list = [record for record in csv.reader(f) if strictly_increasing(record)]
# do something with the list
그래서 사용하는 작은 이유가 실제로는 filter
입니다.
7
파이썬은 "배터리 포함"을 자랑했기 때문에 대부분의 일상적인 상황에서 누군가가 이미 해결책을 제공했을 것입니다. CSV가 그 중 하나입니다. built-in csv module
또한 제 3 자 모듈 특히 비 ASCII 데이터를 처리합니다.
당신이 코멘트에 기술 된 행동이 할 것 다음 filter
기능 목록에서 선택하기위한 것입니다
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
row.pop(1)
print ", ".join(row)
관련 문제
- 1. python의 내장 함수. 사용 방법?
- 2. python의 함수
- 3. Python의 함수 정의
- 4. Python의 함수 범위
- 5. Python의 MATLAB interp2 함수
- 6. Python의 임의 함수
- 7. Python의 확률 분포 함수
- 8. Python의 함수 다형성
- 9. python의 계승을위한 exclam (!) 구문 사용
- 10. 인트라넷에서 Python의 easy_install 사용
- 11. Python의 클래스 사용
- 12. Python의 win32com.client 함수 (propput 포함)
- 13. 비회원 vs Python의 멤버 함수
- 14. Python의 함수 환경을 이해하려고 시도했습니다.
- 15. 하스켈 필터 함수 오류
- 16. Drupal보기의 SQL 함수 필터
- 17. 필터 함수 사용법 Matlab
- 18. ASP 필터 함수 -> C# 상당 함수
- 19. Tor와 함께 Python의 smtplib 사용
- 20. 문제 Windows에서 Python의 subprocess.communicate() 사용
- 21. Python의 "Scrapy"사용 중 오류
- 22. list comprehensions-python의 올바른 사용
- 23. tweepy를 사용하여 python의 xAuth 사용
- 24. 레일스 필터/함수 이전과 이후에
- 25. carraydataprovider에 필터 사용 yii
- 26. 필터 사용 방법?
- 27. 모델에서 필터 사용 방법
- 28. 필터 문자열에서 변수 사용
- 29. Winsock 사용 DShow 필터
- 30. GQL 필터 목록 사용
입력 데이터와 요청 된 출력 데이터의 예를 제공 할 수 있습니까? – six8
당신이하고 싶은 것을 더 자세하게 설명 할 수 있습니까? 어쩌면 예를 보여줄 수 있습니까? 나에게 명확하지 않다 ... –
물론. CSV에 열 1,2 및 3이 있다고 가정 해 봅시다. 열 2의 모든 데이터를 무시하고 열 1 및 3의 데이터 만 추출하려고합니다. 필터 함수를 사용하여이를 수행 할 수 있습니까? – mantissa45