csvkit으로 데이터 쌓기와 명령 연결

셸에서의 데이터 처리

Susan Sun

Data Person

csvstack: 여러 CSV 파일 쌓기

csvstack: 둘 이상의 CSV에서 행을 위로 쌓습니다

도움말:

csvstack -h
usage: csvstack [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
                [-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H]
                [-n GROUP_NAME] [--filenames]
셸에서의 데이터 처리

csvstack: 여러 CSV 파일 쌓기

유사한 파일 Spotify_Rank6.csv와 Spotify_Rank7.csv를 하나로 쌓습니다.

스키마 확인을 위해 미리보기:

csvlook Spotify_Rank6.csv
| track_id               | popularity |
| ---------------------- | ---------- |
| 7JYCpIzpoidDOnnmxmHwtj |          6 |
| 0mmFibEg5NuULMwTVN2tRU |          6 |
셸에서의 데이터 처리

csvstack: 여러 CSV 파일 쌓기

csvlook Spotify_Rank7.csv
| track_id               | popularity |
| ---------------------- | ---------- |
| 118GQ70Sp6pMqn6w1oKuki |          7 |
| 6S7cr72a7a8RVAXzDCRj6m |          7 |
셸에서의 데이터 처리

csvstack: 여러 CSV 파일 쌓기

구문:

csvstack Spotify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
csvlook Spotify_AllRanks.csv
| track_id               | popularity |
| ---------------------- | ---------- |
| 7JYCpIzpoidDOnnmxmHwtj |          6 |
| 0mmFibEg5NuULMwTVN2tRU |          6 |
| 118GQ70Sp6pMqn6w1oKuki |          7 |
| 6S7cr72a7a8RVAXzDCRj6m |          7 |
셸에서의 데이터 처리

csvstack: 여러 CSV 파일 쌓기

csvstack -g "Rank6","Rank7" \ 
Spotify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
csvlook Spotify_AllRanks.csv
| group | track_id               | popularity |
| ----- | ---------------------- | ---------- |
| Rank6 | 7JYCpIzpoidDOnnmxmHwtj |          6 |
| Rank6 | 0mmFibEg5NuULMwTVN2tRU |          6 |
| Rank7 | 118GQ70Sp6pMqn6w1oKuki |          7 |
| Rank7 | 6S7cr72a7a8RVAXzDCRj6m |          7 |
셸에서의 데이터 처리

csvstack: 여러 CSV 파일 쌓기

csvstack -g "Rank6","Rank7" -n "source" \
Spotify_Rank6.csv Spotify_Rank7.csv > Spotify_AllRanks.csv
csvlook Spotify_AllRanks.csv
| source| track_id               | popularity |
| ----- | ---------------------- | ---------- |
| Rank6 | 7JYCpIzpoidDOnnmxmHwtj |          6 |
| Rank6 | 0mmFibEg5NuULMwTVN2tRU |          6 |
| Rank7 | 118GQ70Sp6pMqn6w1oKuki |          7 |
| Rank7 | 6S7cr72a7a8RVAXzDCRj6m |          7 |
셸에서의 데이터 처리

명령줄 명령 연결하기

;는 명령을 연결하여 순차 실행합니다

csvlook SpotifyData_All.csv; csvstat SpotifyData_All.csv

&&는 첫 명령이 성공할 때만 다음 명령을 실행합니다

csvlook SpotifyData_All.csv && csvstat SpotifyData_All data.csv
셸에서의 데이터 처리

명령줄 명령 연결하기

>는 첫 명령의 출력을 두 번째에 지정한 위치로 리다이렉트합니다

in2csv SpotifyData.xlsx > SpotifyData.csv
셸에서의 데이터 처리

명령줄 명령 연결하기

|는 첫 명령의 출력을 두 번째 명령의 입력으로 사용합니다

예시:

csvcut 출력은 서식이 좋지 않습니다:

csvcut -c "track_id","danceability" Spotify_MusicAttributes.csv
track_id,danceability
118GQ70Sp6pMqn6w1oKuki,0.787
6S7cr72a7a8RVAXzDCRj6m,0.777
7h2qWpMJzIVtiP30E8VDW4,0.795
3KVQFxJ5CWOcbxdpPYdi4o,0.815
셸에서의 데이터 처리

명령줄 명령 연결하기

예시 (계속):

csvcut 출력을 파이프로 csvlook에 전달해 서식을 개선합니다:

csvcut -c "track_id","danceability"  Spotify_Popularity.csv | csvlook
| track_id               | danceability |
| ---------------------- | ------------ |
| 118GQ70Sp6pMqn6w1oKuki |        0.787 |
| 6S7cr72a7a8RVAXzDCRj6m |        0.777 |
| 7h2qWpMJzIVtiP30E8VDW4 |        0.796 |
| 3KVQFxJ5CWOcbxdpPYdi4o |        0.815 |
셸에서의 데이터 처리

모두 합쳐 봅시다!

셸에서의 데이터 처리

Preparing Video For Download...