Pandas: ํƒญ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํ…์ŠคํŠธ ์ฝ๊ธฐ๋ฅผ ์œ„ํ•œ DataFrame.to_tsv() ์š”์ฒญ

์— ๋งŒ๋“  2015๋…„ 06์›” 11์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pandas-dev/pandas

๋‚˜๋Š” to_tsv ๋˜๋Š” to_table์ด๋ผ๋Š” DataFrame์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” sep='\t' ์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” to_csv() ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. to_tsv() ์—๋Š” tsv ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ํ•ญ์ƒ ์ถ”๊ฐ€ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค. ํƒญ์ด ๋” ๋“œ๋ฌผ๊ฒŒ ๋ฐœ์ƒํ•˜์—ฌ ์ด์Šค์ผ€์ดํ”„์˜ ํ•„์š”์„ฑ์ด ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— csv ํŒŒ์ผ๋ณด๋‹ค tsv ํŒŒ์ผ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ Œ๋”๋ง์ด ๋” ์ฝ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ „์šฉ to_tsv() ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— tsv๋ณด๋‹ค csv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ read_table() ๋Š” ํƒญ ๊ตฌ๋ถ„์ž๋กœ ๊ธฐ๋ณธ ์„ค์ •๋˜์–ด ์žˆ์ง€๋งŒ ์“ฐ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

+1. ์‹ค๋ฌด์ž๋กœ์„œ to_tab ์„คํƒ•์„ ๋†’์ด ํ‰๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  16 ๋Œ“๊ธ€

to_csv(sep='\t') ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ to_tsv ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ ๋”ฐ์˜ดํ‘œ ๋ณ€๊ฒฝ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. tsv ํŒŒ์ผ์—๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ๋œ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

pandas API๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํŽธ์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„ ์ด๋ฏธ ์–ด์ˆ˜์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@shoyer ์˜ ์˜๊ฒฌ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ธฐ๋Šฅ์€ to_csv ๋‚ด์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฏธ ๋งŽ์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒˆ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋” ๊ฐ•๋ ฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค (์šฐ๋ฆฌ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ..). ๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ† ๋ก ์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1. ์‹ค๋ฌด์ž๋กœ์„œ to_tab ์„คํƒ•์„ ๋†’์ด ํ‰๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค๋ฅธ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

IMO์˜ ํŽธ๋ฆฌํ•จ์€ ์ •๋‹นํ™”๋  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์‚ฌ๋žŒ๋“ค์€ ๋งŽ์€ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์œผ๋ฏ€๋กœ to_csv ๋Š” ์ง€์†์ ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ณด์™„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜์˜ ์ฃผ๋œ ๋™๊ธฐ๋Š” CSV ํ˜•์‹์— ๋Œ€ํ•œ ๊ฒฝ๋ฉธ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ TSV๋ฅผ ํ†ตํ•ด CSV๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ ๋งˆ์Œ์ด ์•„ํ”•๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์—‘์…€/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ง€์›์ด ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŒฌ๋”์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํ˜„์žฌ ๋‚˜์—๊ฒŒ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ csv ๋Š” ๋ฏธ๊ตญ/์˜์—ฐ๋ฐฉ ๋Œ€ํ‘œ ์ค‘์‹ฌ์ด๋ฉฐ ๊ตญ์ œ์ ์œผ๋กœ ์ธ์‹๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. UTF ๋ฐ ๊ตญ์ œํ™”์˜ ์ˆ˜์šฉ์— ๋Œ€ํ•œ ๋ชจ๋“  Pythonic ์ฒ ํ•™๊ณผ ํ•จ๊ป˜ ํƒญ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๊ฒƒ์ด csv / semicolon-sv๋ณด๋‹ค ์„ ํ˜ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@shoyer๊ฐ€ ์ œ์‹œํ•œ ๊ฐ์ •์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ @dhimmel ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝํ—˜์ƒ TSV๋Š” CSV๋ณด๋‹ค ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ํ‘œ์ค€ ํ˜•์‹์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. TSV ํ˜•์‹์ด ์š”๊ตฌ ์‚ฌํ•ญ์ธ ๋งŽ์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์ง€๋งŒ CSV ํ˜•์‹์— ๋Œ€ํ•ด์„œ๋Š” ์ต์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ). TSV๋Š” ๋˜ํ•œ ์›์‹œ ํ…์ŠคํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  @dhimmel์ด ์–ธ๊ธ‰ํ•œ ์ธ์šฉ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” to_tsv ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ์•ฝ๊ฐ„ ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด(๋ฏธ๊ตญ์—์„œ) CSV๋Š” TSV๋ณด๋‹ค ๋” ์ผ๋ฐ˜์ ์ด์ง€๋งŒ(์ ์–ด๋„ ํŒŒ์ผ ํ˜•์‹์˜ ์ด๋ฆ„์—์„œ๋Š”) ์•ฝ๊ฐ„๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. to_tsv ์˜ ์ฃผ์š” ์žฅ์ ์€ ์ด๋ฆ„์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ฆ‰์‹œ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CSV์™€ TSV๋Š” ๋ชจ๋‘ ์ž˜ ์ง€์›๋˜๋ฉฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. CSV๋Š” ๋ ˆ๊ฑฐ์‹œ ํ˜•์‹์— ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์—ญ๋ฐฉํ–ฅ ์ค‘์‹ฌ ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ CSV๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ๊ณผํ•™์— ๋” ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ TSV๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. pandas์—๋Š” ๊ธฐ๋ณธ to_text_delimited_file ์ถœ๋ ฅ ํ•จ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ to_csv ๊ฐ€ ์‚ฌ์‹ค์ƒ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ sep='\t' ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— pandas๋Š” TSV๋ณด๋‹ค CSV์˜ ๋ณด๊ธ‰์— ๊ธฐ์—ฌํ•˜๊ณ  ์šฐ์ˆ˜ํ•œ ํ˜•์‹์˜ ๋ถ€์ƒ์„ ์ง€์—ฐ์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฌด์ง€ํ•œ ์ ์„ ์–‘ํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ๋žŒ์œผ๋กœ์„œ ์ฝ๊ธฐ๊ฐ€ ๋” ์‰ฝ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ , ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์—ด ๋จธ๋ฆฌ๊ธ€์ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ๋ฌธ์ž๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ์—๋งŒ TSV๊ฐ€ CSV์— ๋น„ํ•ด ์–ด๋–ค ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ? ์†”์งํžˆ ๋‘˜ ์‚ฌ์ด์— ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ์ง€๊ธˆ์€ TSV๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์†”์งํžˆ ๋งํ•˜๋ฉด ์ž‘์—… ์ค‘์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ํ•ด๋‹น ํ˜•์‹์œผ๋กœ ์™€์„œ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

TSV๋Š” CSV์— ๋น„ํ•ด ์–ด๋–ค ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?

@Starkiller4011 ํƒญ์€ ์—ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ž์—ฐ์Šค๋Ÿฌ์šด ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ฐ’์— ํƒญ์ด ๊ฑฐ์˜ ํฌํ•จ๋˜์ง€ ์•Š๊ณ  ์‰ผํ‘œ๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์šฉ์ด ๋œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์†”์งํžˆ ๋‘˜ ์‚ฌ์ด์— ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ๋ฏธ๋ฏธํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ๊ณผํ•™์˜ ๋Œ€๋ถ€๋ถ„๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘์š”ํ•œ ์‹ค์ œ ์œ ํ˜•์˜ ์„ฑ๋Šฅ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ ํšจ์œจ์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” TSV๊ฐ€ CSV๋ณด๋‹ค ์ž‘์—…ํ•˜๊ธฐ์— ๋” ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํƒญ ๋ถ„๋ฆฌ๊ฐ€ csv๋ณด๋‹ค ์šฐ์ˆ˜ํ•˜๋‹ค๋Š” ๋ฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ €๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Python ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ์„œ ์šฐ๋ฆฌ๋Š” ๋ณต์‚ฌ ๋ฐ ๋ถ™์—ฌ๋„ฃ๊ธฐ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ž‘์—…์—์„œ ๊ณต๋ฐฑ์ด ํ•ญ์ƒ ๋ณด์กด๋˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SO์— ๋Œ€ํ•œ ๋งŽ์€ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ •๊ธฐ์ ์œผ๋กœ sep="\s\s+" ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํ˜•์‹์œผ๋กœ ๋คํ”„ํ•œ ํ…์ŠคํŠธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผ ํ•˜๋ฉฐ ์ถฉ๋ถ„ํ•œ ๊ณต๋ฐฑ์„ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋„๋ก ์—ด ์‚ฌ์ด์—. ์‰ผํ‘œ, ์„ธ๋ฏธ์ฝœ๋ก , ํŒŒ์ดํ”„ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ „์— ๋ช‡๋ช‡ ๋ถ„์•ผ์—์„œ ๊ฝค ๋งŽ์ด ์“ฐ๋˜ ์บ๋Ÿฟ์ด ์ƒ๊ฐ๋‚ฌ์–ด์š”.)

์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์„ ๋” ํ–‰๋ณตํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด to_tsv ๋ณ„์นญ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ TSV๋กœ ์ž‘์—…ํ•  ๋•Œ TSV ์ž์ฒด์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ๋ง์ž. ๋‚ด๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์ด์ ์€ ์ธ์šฉ์ด ์ ๋‹ค๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

ํ•œ ๊ฑธ์Œ ๋ฌผ๋Ÿฌ์„œ์„œ to_csv ์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์–ด๋ฆฌ์„์€ ๊ฒƒ์ž„์„ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜์€ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ to_table to_csv ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. write.table() ํ•จ์ˆ˜์— ์ด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ก์„ ์œ„ํ•ด CSV์™€ TSV ๋ชจ๋‘ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์ข‹์€ ํ˜•์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์ง€์›๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @dsm054 ๋Š” ๊ณต๋ฐฑ์ด ์•„๋‹Œ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์— ๋ช‡ ๊ฐ€์ง€ ๊ฐ•๋ ฅํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์— ๋” ํฐ ๋ฌธ์ œ๋Š” .csv ํ™•์žฅ์ž๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: TSV๋ฅผ ์ฐธ์กฐํ•  ๋•Œ). https://github.com/pandas-dev/pandas/pull/14587์—์„œ ํ† ๋ก ์„ ์ฐธ์กฐํ•˜์„ธ์š”. to_table ๋Š” ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜์—ฌ์•ผ ํ•˜๊ณ  to_csv ๋˜๋Š” to_tsv ๋Š” ์ด๋Ÿฌํ•œ ํ‘œ์ค€์— ์ดˆ์ ์„ ๋งž์ถฐ์•ผ ํ•˜๋Š” @stevekm ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฏธ๋ฆฌ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์†Œํ•œ pandas 2๋Š” readr ํ–‰์„ ๋”ฐ๋ผ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

R + Tidyverse/readr์—์„œ ๊ฐ€์ ธ์˜จ pandas ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ฐ€์žฅ ๋จผ์ € ๋ถ€์ •์ ์ธ ์ธ์ƒ์„ ๋ฐ›์€ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๊ด€๋œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

read_csv()/write_csv(): ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ(CSV) ํŒŒ์ผ
read_tsv()/write_tsv(): ํƒญ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํŒŒ์ผ
read_delim()/write_delim(): ์ผ๋ฐ˜ ๊ตฌ๋ถ„ ํŒŒ์ผ
read_fwf()/write_fwf(): ๊ณ ์ • ๋„ˆ๋น„ ํŒŒ์ผ
read_table()/write_table(): ์—ด์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ํ…Œ์ด๋ธ” ํ˜•์‹ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
read_log()/write_log(): ์›น ๋กœ๊ทธ ํŒŒ์ผ

20๋…„ ๋™์•ˆ ์œ ์ „์ฒดํ•™์—์„œ ๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ํ•˜๋ฉด์„œ csv ํŒŒ์ผ์„ ์ ‘ํ•œ ์ ์ด ์—†์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋Š” tsv(๋˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ) ํ˜•์‹์œผ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. tsv(๋˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ) ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด df.to_csv()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sep ๋ฐ ์ธ์šฉ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋งํ•  ๊ฒƒ๋„ ์—†์ด ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.

ํƒญ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํŒŒ์ผ์„ ์œ„ํ•œ df.read_tsv() df.to_tsv()์™€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ํŒŒ์ผ์„ ์œ„ํ•œ df.read_table() df.to_table()์„ ์‚ฌ์šฉํ•˜๋ฉด R์—์„œ ํŒ๋‹ค๋ฅผ ์ฐพ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pandas 0.24๋ถ€ํ„ฐ read_table ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(https://github.com/pandas-dev/pandas/issues/21948/https://github.com/pandas-dev/pandas/pull/ ์ฐธ์กฐ). 21954). $# read_tsv ๊ฐ€ ์—†๋Š” ๋Œ€์‹  read_table ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŽ์ด ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

FutureWarning: read_table is deprecated, use read_csv instead, passing sep='\t'.

ํ”Œ๋Ÿฌ์Šค ์ธก๋ฉด์—์„œ read_table ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด read_tsv ๋ฐ to_tsv ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ฐ„๋‹จํ•ด ์ง€์ง€๋งŒ https://github ์— ๋”ฐ๋ผ ํŽธ์˜ ๊ธฐ๋Šฅ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ถ”์„ธ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰