csvkit
- 일련의 데이터 명령을 커맨드 라인으로 가져와서 격차를 해소한다.
- 파이썬으로 개발되었다.
pip install csvkit
로 설치할 수 있다.
in2csv
in2csv는 csvkit에서 유용한 명령이다.
텍스트나 엑셀 같은 테이블 형식 데이터 파일을 csv로 변환한다.
in2csv SpotifyData.xlsx > SpotifyData.csv
스프레드시트 이름을 출력하려면 --names
또는 -n
을 사용한다.
in2csv -n SpotifyData.xlsx
Worksheet1_Popularity
Worksheet2_MusicAttributes
특정 시트 데이터를 변환하려면 --sheet
를 사용한다.
in2csv SptifyData.xlsx --sheet 'Worksheet1_Popularity' > Spotify_Popularity.csv
csvlook
보기 편하게 csv 파일을 출력한다.
csvlook Spotify_Popularity.csv
| 컬럼 이름 1 | 컬럼 이름 2 |
| --------------------|-----------|
| 데이터 | 데이터 |
| 데이터 | 데이터 |
| 데이터 | 데이터 |
| 데이터 | 데이터 |
csvstat
pandas의 describe() 와 같은 역할
통계량을 출력한다.
csvstat Spotify_Popularity.csv
csvkit을 사용해서 데이터 필터링도 가능하다.
- 컬럼 별 필터링
- 로우 별 필터링
csvcut
컬럼 별로 필터링할 수 있다.
만약 csv파일의 컬럼 이름이 생각이 나지 않을 땐 --name
또는 -n
옵션으로 컬럼명을 알 수 있다.
csvcut -n Spotify_MusicAttributes.csv
1: track_id
2: danceability
3: duration_ms
position index를 사용해서 가져올 수 있다.
csvcut -c 1 Spotify_MusicAttributes.csv
이름으로 가져오고 싶다면 인덱스 대신 "컬럼명" 으로 대체하면 된다.
csvcut -c "track_id" Spotify_MusicAttributes.csv
두 개 이상의 컬럼은 쉼표로 구분해서 써주면 된다.
csvcut -c 2,3 Spotify_MusicAttributes.csv
컬럼명을 사용할 때도 마찬가지다.
csvgrep
행 별로 필터링이 가능하다.
반드시 세 가지 옵션 중 하나를 사용해야한다.
-m
: 정확한 값
-r
: 표현식
-f
: 경로
특정 track id로 데이터를 필터링 하고자 한다면 다음처럼 명령어를 작성할 수 있다.
csvgrep -c "track_id" -m 5RCPsfzmEpTXMCTNk7wEfQ Spotify_Popularity.csv
csvstack
둘 이상의 csv 파일을 행 기준으로 쌓는다.
csvstack Spotify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
동일한 열의 수와 열의 타입, 열의 순서를 가진 파일을 합칠 수 있다.
-g
옵션을 사용해서 group이라는 열을 생성할 수 있다.
csvstack -g "Rank6", "Rank7" Sptify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
csvlook Spotify_AllRanks.csv
로 합쳐진 파일 내용을 보면 다음과 같이 group 열에서 어떤 파일로부터 온 데이터인지 알 수 있도록 데이터를 저장한다.
| group | track_id | popularity |
| ----- | ----------- | ---------- |
| Rank6 | jeijflafkld | 6 |
| Rank6 | ejiouv1dha8 | 6 |
| Rank7 | 38nxleizi1f | 7 |
| Rank7 | 0clfhaieFjv | 7 |
만약 group 컬럼 명을 변경하고 싶다면 -n
을 사용한다.
csvstack -g "Rank6", "Rank7" -n "source" Sptify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
명령이 길어지면 여러 문장을 묶을 수도 있다.
;
을 사용하여 여러 명령을 묶을 수 있다.
csvlook SpotifyData_All.csv; csvstat SpotifyData_All.csv
&&
을 사용하면 첫 명령이 실행되어야지만 두 번째 명령이 실행된다.
csvlook SpotifyData_All.csv && csvstat SpotifyData_All.csv
>
첫 번째 명령의 출력을 두 번째 명령 위치에 저장한다.
in2csv SpotifyData.xlsx > SpotifyData.csv
|
파이프는 첫 번째 명령의 출력을 두 번째 명령의 입력으로 사용한다.
csvcut -c "track_id", "danceability" Spotify_Popularity.csv | csvlook
Uploaded by Notion2Tistory v1.1.0