Rumah >pembangunan bahagian belakang >Tutorial Python >Cara membaca fail txt dengan betul menggunakan panda

Cara membaca fail txt dengan betul menggunakan panda

王林
王林asal
2024-01-19 08:39:151954semak imbas

Cara membaca fail txt dengan betul menggunakan panda

Cara menggunakan panda untuk membaca fail txt dengan betul memerlukan contoh kod khusus

Pandas ialah perpustakaan analisis data Python yang digunakan secara meluas, yang boleh digunakan untuk memproses pelbagai jenis data, termasuk fail CSV, fail Excel, pangkalan data SQL , dsb. Pada masa yang sama, ia juga boleh digunakan untuk membaca fail teks, seperti fail txt. Walau bagaimanapun, apabila membaca fail txt, kadangkala kami menghadapi beberapa masalah, seperti masalah pengekodan, masalah pembatas, dsb. Artikel ini akan memperkenalkan cara menggunakan panda untuk membaca fail txt dengan betul dan memberikan contoh kod khusus.

  1. Baca fail txt biasa

Jika anda ingin membaca fail txt biasa, kita hanya perlu menggunakan fungsi read_csv dalam panda dan nyatakan laluan fail dan pembatas. Berikut ialah contoh:

import pandas as pd

# 读取txt文件
df = pd.read_csv('data.txt', sep='    ')

# 显示前5行数据
print(df.head())

Dalam contoh ini, kami menggunakan fungsi read_csv untuk membaca fail data.txt dan menentukan pembatas sebagai aksara tab, iaitu ' '. Setiap baris data dalam fail ini menggunakan aksara tab untuk memisahkan lajur. Jika kami tidak menentukan pembatas, panda menggunakan koma sebagai pembatas secara lalai.

  1. Baca fail txt yang mengandungi bahasa Cina

Apabila membaca fail txt yang mengandungi bahasa Cina, kita perlu memberi perhatian kepada isu pengekodan. Jika pengekodan fail ialah utf-8, kami hanya perlu menentukan kaedah pengekodan dalam fungsi read_csv. Berikut ialah contoh:

import pandas as pd

# 读取txt文件
df = pd.read_csv('data.txt', sep='    ', encoding='utf-8')

# 显示前5行数据
print(df.head())

Dalam contoh ini, kami menentukan kaedah pengekodan sebagai utf-8 dalam fungsi read_csv.

Namun, jika pengekodan fail bukan utf-8, kita perlu menukar pengekodan fail kepada utf-8 sebelum membaca. Sebagai contoh, jika pengekodan fail ialah gbk, kita boleh menggunakan kod berikut untuk membaca fail:

import pandas as pd

# 先将文件编码转换成utf-8
with open('data.txt', 'r', encoding='gbk') as f:
    text = f.read()
    text = text.encode('utf-8')
    with open('data_utf8.txt', 'wb') as f2:
        f2.write(text)

# 读取转换后的txt文件
df = pd.read_csv('data_utf8.txt', sep='    ', encoding='utf-8')

# 显示前5行数据
print(df.head())

Dalam contoh ini, kita mula-mula menggunakan fungsi terbuka untuk membuka fail asal dan menukarnya menjadi UTF-8 yang dikodkan rentetan. Kemudian, kami menggunakan fungsi terbuka untuk membuka fail lain dan menulis rentetan yang ditukar ke dalamnya. Akhir sekali, kami membaca fail txt yang ditukar, sama seperti contoh sebelumnya, menyatakan pembatas sebagai tab dan pengekodan sebagai utf-8.

  1. Baca fail txt yang mengandungi nilai yang hilang

Jika fail txt mengandungi nilai yang tiada, kita boleh menggunakan parameter na_values ​​​​dalam fungsi read_csv untuk menentukan perwakilan nilai yang hilang. Contohnya, jika nilai yang hilang diwakili oleh aksara '#N/A', kita boleh menggunakan kod berikut untuk membaca fail:

import pandas as pd

# 读取txt文件,指定缺失值的表示方式为'#N/A'
df = pd.read_csv('data.txt', sep='    ', na_values='#N/A')

# 显示前5行数据
print(df.head())

Dalam contoh ini, kami menggunakan parameter na_values ​​​​dalam fungsi read_csv untuk tentukan '#N/A' sebagai Bagaimana untuk mewakili nilai yang hilang. Dengan cara ini, panda akan secara automatik mengenal pasti nilai ini sebagai NaN (nilai yang hilang), yang memudahkan pemprosesan data kami yang seterusnya.

  1. Baca fail txt yang mengandungi tarikh dan masa

Jika fail txt mengandungi data dalam format tarikh dan masa, kami boleh menggunakan parameter parse_dates dalam fungsi read_csv untuk menukarnya kepada jenis tarikh dan masa dalam panda. Sebagai contoh, jika fail mengandungi lajur bernama 'tarikh' dan format data ialah 'yyyy-mm-dd', kami boleh menggunakan kod berikut untuk membaca fail:

import pandas as pd

# 读取txt文件,并将'date'列的数据转换成日期时间类型
df = pd.read_csv('data.txt', sep='    ', parse_dates=['date'])

# 显示前5行数据
print(df.head())

Dalam contoh ini, kami menggunakan fungsi read_csv Gunakan parameter parse_dates untuk menentukan bahawa data dalam lajur 'tarikh' akan ditukar kepada jenis tarikh dan masa. Dengan cara ini, panda akan menukarnya secara automatik kepada jenis Datetime untuk memudahkan pemprosesan data kami yang seterusnya.

Ringkasnya, kita boleh menggunakan fungsi read_csv dalam panda untuk membaca fail txt dan mengambil penyelesaian yang sepadan untuk masalah yang berbeza. Pada masa yang sama, kita juga perlu memberi perhatian kepada beberapa butiran, seperti kaedah pengekodan, kaedah perwakilan nilai yang hilang, format tarikh dan masa, dsb.

Atas ialah kandungan terperinci Cara membaca fail txt dengan betul menggunakan panda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn