Bagaimana cara memuat file tsv ke dalam Pandaf DataFrame?


136

Saya baru mengenal python dan panda. Saya mencoba untuk mendapatkan tsvfile yang dimuat ke dalam panda DataFrame.

Inilah yang saya coba dan kesalahan yang saya dapatkan:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

11
Bagi yang datang ke jawaban ini di 2017+, gunakan read_csv('path_to_file', sep='\t'). Lihat jawaban ini di bawah
Ted Petrou

Terima kasih @TedPetrou
Salomon Kabongo

Jawaban:


153

Catatan : Pada 17.0 from_csvtidak disarankan: gunakanpd.read_csv saja

Dokumentasi mencantumkan fungsi .from_csv yang muncul untuk melakukan apa yang Anda inginkan:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')

Jika Anda memiliki tajuk, Anda dapat meneruskan header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

4
Saya punya beberapa masalah dengan metode ini - itu sangat lambat dan gagal pengindeksan pada akhirnya. Sebagai gantinya, saya menggunakan read_table (), yang bekerja lebih cepat dan tanpa param tambahan.
Yurik

21
Perhatikan bahwa pada 17.0 from_csvtidak disarankan: gunakan pd.read_csvsaja!
rafaelvalle

2
Saya harus menggunakan yang berikut ini: DataFrame.read_csv ('filepath.tsv', sep = '', header = 0)
Archie

3
Ini jawaban yang buruk; Anda dapat membaca TSV secara asli dengan pd.read_csv/read_table, Anda hanya perlu mengatur delim_whitespace=Trueatausep
smci

3
@rafaelvalle menambahkan pemberitahuan yang ditinggalkan
Arayan Singh

84

Pada 17.0 from_csvtidak disarankan.

Gunakan pd.read_csv(fpath, sep='\t')atau pd.read_table(fpath).


4
Catatan: read_table sudah tidak digunakan lagi sejak versi 0.24.0. Gunakan pandas.read_csv () sebagai gantinya.
ManuelSchneid3r

57

Gunakan read_table(filepath). Pemisah default adalah tab


1
read_table tidak memerlukan parameter apa pun. Bekerja dengan sempurna.
Jay

19

Coba ini

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

masukkan deskripsi gambar di sini

Anda sebenarnya perlu memperbaiki parameter sep .


7

buka file, simpan sebagai .csv dan kemudian terapkan

df = pd.read_csv('apps.csv', sep='\t')

untuk format lain juga, cukup ganti tag sep


0
df = pd.read_csv('filename.csv', sep='\t', header=0)

Anda dapat memuat file tsv langsung ke bingkai data panda dengan menentukan pembatas dan header.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.