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.
Fail teks mengikut struktur hierarki di mana:
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>
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>
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>
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>
Pada ketika ini, anda mempunyai DataFrame dengan lajur 'Negeri' dan 'Nama Wilayah', seperti yang diperlukan.
<code class="python">print(df)</code>
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!