데이터 필터링(?)에 대해 질문드립니다.
글쓴이: koreaccm / 작성시간: 수, 2012/09/26 - 7:39오후
먼저 이해를 돕고자 아주 간단한 샘플을 파일로 첨부했습니다.
문제는 다음과 같습니다.
엑셀 작업 중,
저는 "y값으로 표시한 데이터만 출력하고 싶은데"
스프레드시트의 필터 기능을 적용하면,
가로든 세로든 옆에 붙어있는 "n"값을 가진 행도 보이더라구요.
몇 시간 동안 고민했는데 실마리조차 찾길 못하겠습니다.
대학 때 교양으로 들은 건 있어서...
유닉스 명령어(grab?)를 사용하면 가능할 것도 같고...
워낙 회사 엑셀파일을 다루면서 자주 겪는 상황이라
꼭 좀 조언을 듣고 싶습니다.
p.s 최근 생전 처음으로 프로그래밍 언어(파이썬)를 공부하면서 이런 생각도 해봤는데 사실 제 능력 밖이라 그냥 상상만 해봤습니다.
"xls 파일을 파이썬의 dictionary 배열방식으로 변환해서
y/n 값을 가진 변수를 쌍으로 묶은 뒤
n값을 가진 변수를 찾아서 지우라는 조건식을 건다면?"
File attachments:
첨부 | 파일 크기 |
---|---|
sample.xls | 7 KB |
Forums:
http://stackoverflow.com/ques
http://stackoverflow.com/questions/10530301/how-to-filter-from-csv-file-using-python-script
여기 답변의 소스처럼 하면 될까요?
csv 파일로 저장해서 하면 될 것 같은데
저기 답변 소스는 single row만 가능한 것 같네요
그냥 저기 or 조건으로 row만 추가하면 될런지..후
lg25 y y 이런 행만 찾고
lg25 y y
이런 행만 찾고 싶으신 건가요?
--
마잇
네, 맞습니다. 마잇님. csv 파일 형식으로
네, 맞습니다. 마잇님.
csv 파일 형식으로 표현하자면 이렇습니다.
[ input ]
편의점, lg25, y, 빌딩, n, 패밀리마트, y
극장, cgv, y, 메가박스, y, 트랜스포머, n
[ output ]
편의점, lg25, y, 패밀리마트, y
극장, cgv, y, 메가박스, y
* 참고로 첫 번째 단어(편의점, 극장)는 타이틀이라 그대로 두기
10만 개 정도를 이렇게 해야해서
파이썬 csv 모듈 튜토리얼을 읽고 있습니다만 여전히 안되네요.
짧은 조언이라도 부탁드립니다.
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
csv 형식으로 변환 했을 때, 각 행의 필드(셀)의
csv 형식으로 변환 했을 때, 각 행의 필드(셀)의 갯수는 고정적인가요?
분류, 항목1, y/n, 항목2, y/n, 항목3, y/n
이런 형식이라고 했을 때 항목의 갯수가 변칙적인가요? 아니면 정해진 갯수 인가요?
--
마잇
새벽에 답글을 확인하고, 이제서야 감사인사를 드리러
새벽에 답글을 확인하고, 이제서야 감사인사를 드리러 왔는데
감사합니다. 추가 질문도 주셔서..
우선 유닉스 명령어 cat을 이용해서 저렇게 할 수 있다는 사실을 알게 되어 너무 감사드립니다.
저도 윈도에서 cygwin을 설치하고 주신 소스가지고 변형해 봤는데 제가 가진 자료는 제대로 필터링이 안되더라구요.
<추가 질문에 대한 답>을 드리면, 열(세로)의 개수는 10개(5쌍)으로 일정하지만 행(가로)의 개수는 가변적입니다. 좀더 정확하게 샘플을 보여드리면 이렇습니다. (사실, y만 끄집어 낼 생각으로 y 입력값 외 나머지는 빈칸입니다)
분류1, 항목1, y, 항목2, y, 항목3, , 항목4, , 항목5, y,
, 항목6, y, 항목7, ,항목8, y, , , , ,
, , , , , , , , , , ,
분류2, 항목1, y, 항목2, y, 항목3, , 항목4, , 항목5, y,
, 항목6, y, 항목7, ,항목8, y, 항목9, , 항목10, ,
, , , , , , , , , , ,
분류3, 항목1, y, 항목2, y, 항목3, , 항목4, , 항목5, y,
, 항목6, y, 항목7, ,항목8, , 항목9, y, 항목10, y,
여기서 ( , , , , , , , , , , ,) 이 부분은 값이 없어서 엑셀에서는 빈 칸으로 처리되어
"사실상 한 줄 띄우기" 입니다. 빈 칸 개수를 세어보면 총 11개로 (분류, 항목1, 항목2 ... 항목 10)과 같은 겁니다.
여기에 맞는 답까지 주신다면, 정말 문제를 해결할 수는 있겠지만
이미 저에게 새로운 방식을 알려주신 것만으로도 충분히 감사드립니다.
정말 감사합니다. :)
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
음...
저는 참견만 하고 답변은 ymir님이 다 해주시네요. :)
--
마잇
진심으로 감사드립니다.
저는 마잇님과 ymlr님 두 분이나 도움 주시는 줄도 몰랐네요. (1분이신줄..)
처음 썼던 제 글은 제가 모르는 것과 필요한 것도 제대로 질문하지 못하고 있었는데
마잇님께서 핵심만 다시 질문해 주시고
ymlr님께서 직접 코드를 달아주셔서
여기까지 올 수 있었습니다.
고향으로 가는 기차 안에서 위에 적어주신 코드로 실행한 결과,
1시간 30분만에 성공했습니다.
(에러가 나서 원인도 모르고 안되나 보다 했는데 chmod +x 로 permission denied 에러 해결하였습니다)
shell script의 힘이란 이런 것이란걸 새롭게 느꼈고
앞으로 이 부분도 기초부터 공부해 보고 싶네요.
다시 한 번 진심으로 감사드립니다.(_ _)
음 ..
패턴 매칭을 잘못 걸었네요..;;;
참고로, 데이터가 복잡할 때에는 파싱하기 편한 패턴으로 정규화 시키는 것도 좋습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기