Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mencipta Pandas DataFrame daripada fail teks dengan struktur khusus yang merangkumi corak negeri dan rantau?

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

Barbara Streisand
Barbara Streisandasal
2024-11-03 03:05:02661semak imbas

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>

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>

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>

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>

5. Final DataFrame

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

<code class="python">print(df)</code>

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>

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!

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