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\t183Giả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ô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
uTheo 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
03. Đặ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ố 8bỏ 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]
15. 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]
36. Đặ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ỗiHã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]
87. Các thông số khác của pandas read_table[]
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# 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 – 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# 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
- ________ 82– Dấu phân cách cho hàng nghìn
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ị# 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
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