Bagaimanakah anda mencipta Pandas DataFrame daripada fail teks dengan corak tertentu, dengan keadaan ditunjukkan oleh \'[edit]\' dan wilayah dengan \'[nombor]\'?

Susan Sarandon
Lepaskan: 2024-11-02 07:03:29
asal
156 orang telah melayarinya

How do you create a Pandas DataFrame from a text file with specific patterns, where states are indicated by

Membuat Bingkai Data Pandas daripada Fail Teks dengan Corak Tertentu

Pernyataan Masalah:

Matlamatnya adalah untuk mencipta Pandas DataFrame daripada fail teks yang mempunyai perkara berikut struktur:

Alabama[edit]
Auburn (Auburn University)[1]
Florence (University of North Alabama)
Jacksonville (Jacksonville State University)[2]
Livingston (University of West Alabama)[2]
Montevallo (University of Montevallo)[2]
Troy (Troy University)[2]
Tuscaloosa (University of Alabama, Stillman College, Shelton State)[3][4]
Tuskegee (Tuskegee University)[5]
Alaska[edit]
Fairbanks (University of Alaska Fairbanks)[2]
Arizona[edit]
Flagstaff (Northern Arizona University)[6]
Tempe (Arizona State University)
Tucson (University of Arizona)
Arkansas[edit]
Salin selepas log masuk

Di mana baris dengan "[edit]" menunjukkan keadaan dan baris dengan "[nombor]" menunjukkan wilayah. DataFrame harus membahagikan data berdasarkan corak ini dan mengulangi nama negeri untuk setiap nama rantau.

Penyelesaian:

Untuk mencapai ini, kita boleh mengikuti langkah di bawah :

  1. Gunakan panda untuk membaca fail teks sebagai DataFrame, menggunakan koma bernoktah sebagai pemisah dan mencipta lajur bernama "Nama Wilayah":
df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])
Salin selepas log masuk
  1. Masukkan lajur baharu bernama "Negeri" menggunakan kaedah ekstrak rentetan untuk mengekstrak nama negeri daripada baris yang mengandungi "[edit]". Kami kemudian mengisi nilai yang hilang menggunakan isian hadapan (isi):
df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())
Salin selepas log masuk
  1. Ganti mana-mana teks yang disertakan dalam kurungan dengan rentetan kosong dalam lajur "Nama Wilayah" untuk mengalih keluar ciri Nama Wilayah :
df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')
Salin selepas log masuk
  1. Alih keluar baris yang mengandungi "[edit]" menggunakan boolean pengindeksan dan str.mengandungi fungsi. DataFrame yang terhasil mengandungi data yang dikehendaki:
df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)
print (df)
Salin selepas log masuk

Contoh Output:

DataFrame output akan kelihatan seperti berikut:

      State   Region Name
0   Alabama        Auburn
1   Alabama      Florence
2   Alabama  Jacksonville
3   Alabama    Livingston
4   Alabama    Montevallo
5   Alabama          Troy
6   Alabama    Tuscaloosa
7   Alabama      Tuskegee
8    Alaska     Fairbanks
9   Arizona     Flagstaff
10  Arizona         Tempe
11  Arizona        Tucson
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda mencipta Pandas DataFrame daripada fail teks dengan corak tertentu, dengan keadaan ditunjukkan oleh \'[edit]\' dan wilayah dengan \'[nombor]\'?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!