Python có thể đọc tệp tsv không?

Có thể có những trường hợp bạn sẽ được cung cấp dữ liệu được lưu trữ ở các định dạng ít phổ biến hơn mà bạn sẽ cần phân tích. Trong hướng dẫn hôm nay, chúng ta sẽ tìm hiểu cách dễ dàng nhập tệp giá trị được phân tách bằng tab [*tsv] bằng Python và thư viện Pandas

Làm cách nào để tạo một tệp được phân cách bằng tab?

Bạn có thể dễ dàng tạo tệp tsv theo chương trình hoặc sử dụng Excel. Trong Excel, bạn chỉ cần lưu bảng tính của mình dưới dạng Văn bản [được phân cách bằng tab] – [*. txt] tập tin. Đảm bảo thay đổi hậu tố tệp từ. txt thành. tsv và sau đó lưu nó vào thư mục làm việc của bạn

Đọc tệp tsv bằng Python

Vì chúng tôi muốn sử dụng nội dung tệp tsv trong phân tích dữ liệu của mình, chúng tôi sẽ tận dụng pd. phương thức read_csv[] sẵn có như một phần của thư viện Pandas

Đây là mã mà chúng tôi có thể sử dụng [trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng dữ liệu phỏng vấn hư cấu của mình]

import pandas as pd
interviews_df = pd.read_csv['tsv_file.tsv']

print[interviews_df]

Đây là kết quả của chúng tôi - như bạn có thể thấy dấu phân cách /t không được Pandas diễn giải chính xác

\ttháng\đầu tiên\tss01\Tháng một\t450\t8512\tTháng tư\t322\t8723\tTháng mười hai\t98\t42034\Tháng bảy\t84\t10845\tTháng tám\t186\t183

Giải pháp là một tham số ma thuật trong pd. phương thức read_csv[] có tên sep=’\t’. Chuyển đổi này sẽ cho phép Pandas mà các tab được sử dụng làm phân cách trong tệp cụ thể này

Làm cách nào để đọc tệp TSV trong gấu trúc? . Trong gấu trúc, bạn có thể đọc tệp TSV vào DataFrame bằng cách sử dụng hàm read_table[]. Trong bài viết về gấu trúc này, tôi sẽ giải thích cách đọc tệp TSV có hoặc không có tiêu đề, bỏ qua hàng, bỏ qua cột, đặt cột thành chỉ mục và nhiều cách khác với các ví dụ

Các tệp TSV là văn bản thuần túy được sử dụng để lưu trữ dữ liệu 2 chiều ở định dạng đơn giản mà con người có thể đọc được, đây là định dạng được sử dụng chủ yếu trong ngành để trao đổi tệp dữ liệu giữa các tổ chức. Trong một số trường hợp, các tệp này cũng được sử dụng để lưu trữ siêu dữ liệu

Có liên quan. gấu trúc Ghi vào tệp CSV

1. read_table[] Cú pháp

Sau đây là cú pháp của hàm read_table[]


# Syntax of read_table[]
pandas.read_table[filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None]

2. gấu trúc Đọc TSV vào DataFrame

Để đọc tệp TSV có dấu phân cách tab [\ t], hãy sử dụng hàm pandas


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
4. Điều này cũng hỗ trợ tùy chọn lặp lại hoặc chia nhỏ tệp thành nhiều phần. Như bạn thấy trong cú pháp trên, cần có một số tham số tùy chọn để hỗ trợ đọc tệp TSV với các tùy chọn khác nhau. Khi bạn đang xử lý các tệp lớn, một số thông số này sẽ giúp bạn tải tệp TSV nhanh hơn. Trong bài viết này, tôi sẽ giải thích cách sử dụng một số tùy chọn này bằng các ví dụ

Tệp 0TSV

Tôi sẽ sử dụng dữ liệu trên để đọc tệp TSV, bạn có thể tìm thấy tệp dữ liệu tại GitHub


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
u

Theo mặc định, nó đọc các hàng đầu tiên trên TSV dưới dạng tên cột [tiêu đề] và nó tạo một số gia tăng dưới dạng chỉ mục bắt đầu từ 0

Ngoài ra, bạn cũng có thể đọc_csv[] nhưng bạn cần sử dụng thông số rõ ràng


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
5 hoặc

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
6 với

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
0

3. Đặt cột làm chỉ mục

Bạn có thể đặt một cột làm chỉ mục bằng cách sử dụng


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
1 làm thông số. Tham số này nhận các giá trị {int, str, chuỗi int / str, hoặc Sai, tùy chọn, mặc định Không có}


# Set column as Index
df = pd.read_tsv['courses.tsv', index_col='Courses']
print[df]

#Yields below output

#           Fee Duration  Discount
#Courses                          
#Spark    25000  50 Days      2000
#Pandas   20000  35 Days      1000
#Java     15000      NaN       800
#Python   15000  30 Days       500
#PHP      18000  30 Days       800

Ngoài ra, bạn cũng có thể sử dụng chỉ mục/vị trí để chỉ định tên cột. Khi được sử dụng một danh sách các giá trị, nó sẽ tạo ra một MultiIndex

4. Bỏ qua hàng

Đôi khi bạn có thể cần bỏ qua hàng đầu tiên hoặc bỏ qua các hàng cuối trang, sử dụng tham số


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
2 và

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
3 tương ứng

________số 8

bỏ qua tham số cũng có một danh sách các hàng để bỏ qua

4. Đọc CSV bằng cách bỏ qua tên cột

Theo mặc định, nó coi hàng đầu tiên từ excel làm tiêu đề và sử dụng nó làm tên cột DataFrame. Trong trường hợp bạn muốn coi hàng đầu tiên từ excel là bản ghi dữ liệu, hãy sử dụng tham số


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
4 và sử dụng tham số

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
5 để chỉ định tên cột. Không chỉ định tên dẫn đến tên cột có số


# Syntax of read_table[]
pandas.read_table[filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None]
1

5. Chỉ tải các cột đã chọn

Sử dụng tham số


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
6, bạn có thể chọn các cột để tải từ tệp CSV. Cái này lấy các cột dưới dạng danh sách các chuỗi hoặc danh sách int


# Syntax of read_table[]
pandas.read_table[filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None]
3

6. Đặt Kiểu dữ liệu thành Cột

Theo mặc định read_table[] chỉ định loại dữ liệu phù hợp nhất dựa trên dữ liệu. Ví dụ:


# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
7 và

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
8 cho DataFrame được cung cấp int64 và

# Import pandas
import pandas as pd

# Read TSV file into DataFrame
df = pd.read_table['courses.tsv']
print[df]

#Yields below output
#  Courses    Fee Duration  Discount
#0   Spark  25000  50 Days      2000
#1  Pandas  20000  35 Days      1000
#2    Java  15000      NaN       800
#3  Python  15000  30 Days       500
#4     PHP  18000  30 Days       800
9 và

# Set column as Index
df = pd.read_tsv['courses.tsv', index_col='Courses']
print[df]

#Yields below output

#           Fee Duration  Discount
#Courses                          
#Spark    25000  50 Days      2000
#Pandas   20000  35 Days      1000
#Java     15000      NaN       800
#Python   15000  30 Days       500
#PHP      18000  30 Days       800
0 được cung cấp chuỗi

Hãy thay đổi các cột Phí thành loại thả nổi


# Syntax of read_table[]
pandas.read_table[filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None]
8

7. Các thông số khác của pandas read_table[]

  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    1 – Chỉ định số hàng cần đọc
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    2 – Tất cả các giá trị được coi là Đúng
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    3 – Tất cả các giá trị được coi là Sai
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    4 – Các cột trùng lặp sẽ được chỉ định là 'X', 'X. 1’, …’X. N', thay vì 'X'...'X'
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    5 – Cung cấp Dict các giá trị bạn muốn chuyển đổi
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    6 – Tương tự như cắt phải. Bỏ qua dấu cách sau dấu phân cách
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    7 – Chỉ định tất cả các giá trị được coi là NaN/NA
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    8 – Chỉ định có tải các giá trị NaN từ dữ liệu hay không
  • 
    # Set column as Index
    df = pd.read_tsv['courses.tsv', index_col='Courses']
    print[df]
    
    #Yields below output
    
    #           Fee Duration  Discount
    #Courses                          
    #Spark    25000  50 Days      2000
    #Pandas   20000  35 Days      1000
    #Java     15000      NaN       800
    #Python   15000  30 Days       500
    #PHP      18000  30 Days       800
    
    9 – Phát hiện các giá trị còn thiếu. đặt cái này thành Sai để cải thiện hiệu suất
  • 
    # Skip first few rows
    df = pd.read_table['courses.tsv', header=None, skiprows=2]
    print[df]
    
    #Yields below output
    
    #        0      1        2     3
    #0  Pandas  20000  35 Days  1000
    #1    Java  15000      NaN   800
    #2  Python  15000  30 Days   500
    #3     PHP  18000  30 Days   800
    
    0 – bỏ qua các dòng trống không có dữ liệu
  • 
    # Skip first few rows
    df = pd.read_table['courses.tsv', header=None, skiprows=2]
    print[df]
    
    #Yields below output
    
    #        0      1        2     3
    #0  Pandas  20000  35 Days  1000
    #1    Java  15000      NaN   800
    #2  Python  15000  30 Days   500
    #3     PHP  18000  30 Days   800
    
    1 – Chỉ định cách bạn muốn phân tích ngày tháng
  • ________ 82– Dấu phân cách cho hàng nghìn
  • 
    # Skip first few rows
    df = pd.read_table['courses.tsv', header=None, skiprows=2]
    print[df]
    
    #Yields below output
    
    #        0      1        2     3
    #0  Pandas  20000  35 Days  1000
    #1    Java  15000      NaN   800
    #2  Python  15000  30 Days   500
    #3     PHP  18000  30 Days   800
    
    3 – Ký tự cho dấu thập phân
  • 
    # Skip first few rows
    df = pd.read_table['courses.tsv', header=None, skiprows=2]
    print[df]
    
    #Yields below output
    
    #        0      1        2     3
    #0  Pandas  20000  35 Days  1000
    #1    Java  15000      NaN   800
    #2  Python  15000  30 Days   500
    #3     PHP  18000  30 Days   800
    
    4 – Dấu tách dòng
  • 
    # Skip first few rows
    df = pd.read_table['courses.tsv', header=None, skiprows=2]
    print[df]
    
    #Yields below output
    
    #        0      1        2     3
    #0  Pandas  20000  35 Days  1000
    #1    Java  15000      NaN   800
    #2  Python  15000  30 Days   500
    #3     PHP  18000  30 Days   800
    
    5 – Sử dụng ký tự trích dẫn khi bạn muốn xem xét dấu phân cách trong một giá trị

Ngoài những thông số này, còn có nhiều thông số tùy chọn khác, hãy tham khảo tài liệu về gấu trúc để biết chi tiết

Sự kết luận

Trong bài viết về python này, bạn đã biết tệp TSV là gì, cách tải tệp đó vào DataFrame của gấu trúc. Cũng đã học cách bỏ qua hàng, chọn cột, bỏ qua tiêu đề và nhiều ví dụ khác

Gấu trúc có thể đọc tệp TSV không?

TSV là viết tắt của Tệp được phân tách bằng tab Sử dụng gấu trúc là một tệp văn bản trong đó mỗi trường được phân tách bằng tab [\t]. Trong gấu trúc, bạn có thể đọc tệp TSV vào DataFrame bằng cách sử dụng hàm read_table[] .

Làm cách nào tôi có thể đọc tệp TSV?

MỞ MỘT BẢN ĐÃ XUẤT *. TỆP TSV .
Đây *. tệp tsv có thể được mở trong Excel. Dưới đây là các bước ưa thích. .
Duyệt đến vị trí tệp và chọn tệp bó để mở. Nhấp đúp vào tên tệp hoặc nhấp vào nút "Mở". “Trình hướng dẫn nhập văn bản” sẽ mở ra. .
Nhấp vào nút Kết thúc. Cửa sổ “Nhập dữ liệu” sẽ mở ra

TSV có giống với CSV không?

Sự khác biệt giữa định dạng TSV và CSV có thể gây nhầm lẫn. Sự khác biệt rõ ràng là dấu phân cách trường mặc định. TSV sử dụng TAB, CSV sử dụng dấu phẩy . Cả hai đều sử dụng dòng mới làm dấu phân cách bản ghi. Bản thân việc sử dụng các dấu phân cách trường khác nhau không đặc biệt quan trọng.

Chủ Đề