Bagaimanakah saya boleh mencipta Pandas DataFrame daripada fail teks dengan struktur khusus yang merangkumi corak negeri dan rantau?

Barbara Streisand
Lepaskan: 2024-11-03 03:05:02
asal
613 orang telah melayarinya

How can I create a Pandas DataFrame from a text file with a specific structure that includes state and region patterns?

Membaca dan Membentuk Bingkai Data Panda daripada Fail Teks dengan Corak Negeri dan Wilayah

Mencipta Bingkai Data Pandas daripada fail teks dengan struktur khusus memerlukan manipulasi data strategik. Mari kita selidiki masalah ini dan teroka penyelesaian untuk mengubah teks yang disediakan kepada DataFrame yang diingini.

Struktur Data

Fail teks mengikut struktur hierarki di mana:

  • Baris dengan "[edit]" ialah nama negeri.
  • Baris dengan "[nombor]" ialah nama rantau.
  • Nama wilayah hendaklah diulang untuk negeri yang sama.

Penyelesaian

1. Membaca Fail Teks

Mula-mula, baca fail teks dan buat DataFrame menggunakan read_csv(). Memandangkan tiada pembatas khusus, nyatakan pemisah tersuai yang tidak wujud dalam data, seperti koma bernoktah:

<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>
Salin selepas log masuk

2. Mengekstrak Nama Negeri

Kenal pasti baris yang mengandungi nama negeri menggunakan kaedah str.extract() dan ungkapan biasa untuk menangkap nama negeri sehingga "[edit]". Buat lajur baharu yang dipanggil 'Negeri' dengan nilai ini:

<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>
Salin selepas log masuk

3. Mengalih keluar Maklumat Kurungan daripada Nama Wilayah

Alih keluar kurungan dan sebarang aksara yang disertakan di dalamnya daripada lajur 'Nama Wilayah':

<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>
Salin selepas log masuk

4. Mengalih keluar Baris Pengepala Negeri

Padamkan baris yang "[edit]" muncul dalam lajur 'Nama Wilayah'. Cipta topeng menggunakan str.contains():

<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>
Salin selepas log masuk

5. Final DataFrame

Pada ketika ini, anda mempunyai DataFrame dengan lajur 'Negeri' dan 'Nama Wilayah', seperti yang diperlukan.

<code class="python">print(df)</code>
Salin selepas log masuk

Penyelesaian Lanjutan

Jika anda lebih suka menyertakan teks kurungan dalam lajur 'Nama Wilayah', berikut ialah penyelesaian yang diubah suai:

<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())
df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)

print(df)</code>
Salin selepas log masuk

Ini akan menghasilkan DataFrame dengan lajur 'Negeri' dan 'Nama Wilayah', di mana nama wilayah termasuk teks dalam kurungan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencipta Pandas DataFrame daripada fail teks dengan struktur khusus yang merangkumi corak negeri dan rantau?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan