Hướng dẫn python read table from text file - python đọc bảng từ tệp văn bản

8

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một bộ dữ liệu ở định dạng này:

Hướng dẫn python read table from text file - python đọc bảng từ tệp văn bản

Tôi cần nhập dữ liệu và làm việc với nó.

Vấn đề chính là cột thứ nhất và thứ tư là các chuỗi trong khi cột thứ hai và thứ ba là float và int, tương ứng.

Tôi muốn đặt dữ liệu vào một ma trận hoặc ít nhất là lấy danh sách dữ liệu của mỗi cột.

Tôi đã cố gắng đọc toàn bộ bộ dữ liệu dưới dạng chuỗi nhưng đó là một mớ hỗn độn:

f = open ( 'input.txt' , 'r')
l = [ map(str,line.split('\t')) for line in f ]

Điều gì có thể là một giải pháp tốt?

hỏi ngày 29 tháng 7 năm 2014 lúc 11:03Jul 29, 2014 at 11:03

Bạn có thể sử dụng gấu trúc. Chúng rất tốt để đọc các tệp CSV, các tệp được phân định Tab, v.v. Gấu trúc sẽ gần như toàn bộ thời gian đọc chính xác kiểu dữ liệu và đặt chúng vào một mảng vô âm khi được truy cập bằng các hàng/cột như đã trình bày.

Tôi đã sử dụng tệp 'test.txt' được phân tách tab này:

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F

Đây là mã Pandas. Tệp của bạn sẽ được đọc trong một khung dữ liệu hay bằng một dòng trong Python. Bạn có thể thay đổi giá trị 'SEP' thành bất cứ thứ gì khác để phù hợp với tệp của bạn.

    import pandas as pd
    X = pd.read_csv('test.txt', sep="\t", header=None)

Vậy hãy thử đi:

    print X
            0         1     2   3
    0   bbbbffdd    434343   228  D 
    1   bbbWWWff  43545343   289   E
    2  ajkfbdafa   2345345  2312   F

    print X[0]
    0     bbbbffdd
    1     bbbWWWff
    2    ajkfbdafa

    print X[2]
    0     228
    1     289
    2    2312

    print X[1][1:]
    1    43545343
    2     2345345

Bạn có thể thêm tên cột như:

    X.columns = ['random_letters', 'number', 'simple_number', 'letter']

Và sau đó lấy các cột như:

    X['number'].values
    array([  434343, 43545343,  2345345])

Đã trả lời ngày 29 tháng 7 năm 2014 lúc 12:05Jul 29, 2014 at 12:05

Sudipta Basaksudipta BasakSudipta Basak

2.9792 Huy hiệu vàng16 Huy hiệu bạc14 Huy hiệu đồng2 gold badges16 silver badges14 bronze badges

1

Bạn dường như có dữ liệu CSV (với các tab là dấu phân cách) Vậy tại sao không sử dụng mô -đun CSV?

import csv

with open('data.csv') as f:
    reader = csv.reader(f, delimiter='\t')
    data = [(col1, float(col2), int(col3), col4)
                for col1, col2, col3, col4 in reader]

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
5 là danh sách các bộ dữ liệu chứa dữ liệu được chuyển đổi (cột 2 -> float, cột 3 -> int). Nếu data.csv chứa (với các tab, không phải khoảng trắng):

thing1  5.005069    284 D
thing2  5.005049    142 D
thing3  5.005066    248 D
thing4  5.005037    124 D

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
5 sẽ chứa:

[('thing1', 5.005069, 284, 'D'),
 ('thing2', 5.005049, 142, 'D'),
 ('thing3', 5.005066, 248, 'D'),
 ('thing4', 5.005037, 124, 'D')]

Đã trả lời ngày 29 tháng 7 năm 2014 lúc 11:44Jul 29, 2014 at 11:44

Mhawkemhawkemhawke

81.9K9 Huy hiệu vàng113 Huy hiệu bạc135 Huy hiệu Đồng9 gold badges113 silver badges135 bronze badges

1

Sử dụng

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
7 để đọc dữ liệu làm danh sách các hàng

[[row1],[row2],[row3]...]

Mỗi hàng có các phần tử của mỗi cột

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
0

Sử dụng

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
8 để đọc từng mục dưới dạng chuỗi

Bạn có thể chuyển đổi các giá trị tương ứng thành Integer, Float, vv với một vòng lặp.

Tham khảo: https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.loadtxt.html

Hướng dẫn python read table from text file - python đọc bảng từ tệp văn bản

Josemy

7901 Huy hiệu vàng11 Huy hiệu bạc29 Huy hiệu đồng1 gold badge11 silver badges29 bronze badges

Đã trả lời ngày 7 tháng 2 năm 2019 lúc 12:27Feb 7, 2019 at 12:27

Hướng dẫn python read table from text file - python đọc bảng từ tệp văn bản

Dưới đây là một giải pháp để đọc trong dữ liệu và chuyển đổi các cột thứ hai và thứ ba đó thành các loại số:

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
1

Với

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
9 sau đây:

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
2

Nó tạo ra đầu ra sau:

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
3

Đã trả lời ngày 29 tháng 7 năm 2014 lúc 11:12Jul 29, 2014 at 11:12

Fordfordford

9.6392 Huy hiệu vàng45 Huy hiệu bạc54 Huy hiệu Đồng2 gold badges45 silver badges54 bronze badges

chia và chuyển đổi danh sách:

    bbbbffdd    434343  228 D 
    bbbWWWff    43545343    289 E
    ajkfbdafa   2345345 2312    F
4

Đã trả lời ngày 29 tháng 7 năm 2014 lúc 11:08Jul 29, 2014 at 11:08

Hướng dẫn python read table from text file - python đọc bảng từ tệp văn bản

7

Làm thế nào để bạn đọc dữ liệu từ một tệp văn bản trong Python?

Để đọc tệp văn bản bằng Python, bạn làm theo các bước sau: Đầu tiên, hãy mở tệp văn bản để đọc bằng cách sử dụng hàm open (). () Phương thức của đối tượng tệp. Thứ ba, đóng tệp bằng phương thức đóng tệp ().open a text file for reading by using the open() function. Second, read text from the text file using the file read() , readline() , or readlines() method of the file object. Third, close the file using the file close() method.

Làm cách nào để đọc một bộ dữ liệu trong Python?

Là người mới bắt đầu, bạn chỉ có thể biết một cách duy nhất để tải dữ liệu (thông thường trong CSV) là đọc nó bằng gấu trúc.hàm read_csv ...
Hàm thủ công ..
Chức năng LoadTXT ..
Chức năng GenFromTxt ..
hàm read_csv ..
Pickle..

Làm thế nào để bạn tải một bộ dữ liệu TXT trong Python?

Nhập dữ liệu trong Python..
Các tệp TXT (.TXT) Nhập Numpy dưới dạng NP.....
Tệp CSV (.csv) Nhập gấu trúc dưới dạng PD.....
Tệp Pickle (.pkl) Nhập PickLewith Open ('Data.pkl', 'RB') dưới dạng tệp: ....
Các tệp excel (.xlsx) nhập gấu trúc dưới dạng pdfile = 'dataFile.xlsx' data = pd.excelfile (file) in (data.sheet_names).

Làm cách nào để lấy dữ liệu từ một tệp văn bản?

Bạn có thể nhập dữ liệu từ một tệp văn bản vào một bảng tính hiện có.Nhấp vào ô nơi bạn muốn đặt dữ liệu từ tệp văn bản.Trên tab Dữ liệu, trong nhóm dữ liệu bên ngoài, nhấp vào từ văn bản. Trong hộp thoại Nhập dữ liệu, định vị và nhấp đúp vào tệp văn bản mà bạn muốn nhập và nhấp vào Nhập.On the Data tab, in the Get External Data group, click From Text. In the Import Data dialog box, locate and double-click the text file that you want to import, and click Import.