Python ganti string dalam daftar dengan kamus
Saya sedang menulis kode untuk mengedit nama bidang dalam file csv untuk diimpor ke ArcMap. Saya memiliki semua nama bidang dalam daftar string. Saya memiliki kamus dengan nama bidang saat ini sebagai kuncinya, dan nama bidang baru sebagai nilainya. Saya mencoba mengulangi daftar nama bidang saat ini dan menggantinya dengan nilai dalam kamus. Saya mencoba untuk menggunakan. metode replace() dan itu tidak berfungsi untuk saya. Ini kode saya saat ini. Ada saran? Show headersDict = {'Number; SEX AND AGE - Total Population':'TPop', 'Number; SEX AND AGE - Male Population':'MPop', 'Number; SEX AND AGE - Female Population':'FPop', 'Under 5 years': '<5', '5 to 9 years': '5_9', '10 to 14 years': '10_14', '15 to 19 years': '15_19', '20 to 24 years': '20_24', '25 to 29 years': '25_29', '30 to 34 years': '30_34', '35 to 39 years': '35_39', '40 to 44 years': '40_44', '45 to 49 years': '45_49', '50 to 54 years': '50_54', '55 to 59 years': '55_59' ,'60 to 64 years': '60_64', '65 to 69 years': '65_69', '70 to 74 years': '70_74', '75 to 79 years': '75_79', '80 to 84 years': '80_84', '85 years and over': '85+', 'Median age(years)': 'Medage', '16 years and over': '16+', '18 years and over': '18+', '21 years and over': '21+', '62 years and over': '62+', '65 years and over': '65+'} for header in headersList: header.replace('Number; SEX AND AGE - Total Population', headersDict['Number; SEX AND AGE - Total Population']) outfile.write(header) Ini berbeda dengan memperbarui dengan >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_7 atau >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e8, yang mengharuskan Anda menentukan lokasi untuk memperbarui dengan beberapa nilaiParametersto_replace str, regex, list, dict, Series, int, float, atau None Bagaimana menemukan nilai yang akan diganti
Lihat bagian contoh untuk contoh masing-masing nilai skalar, dict, daftar, str, regex, default Tidak adaNilai untuk mengganti nilai apa pun yang cocok dengan to_replace. Untuk DataFrame, dict nilai dapat digunakan untuk menentukan nilai mana yang akan digunakan untuk setiap kolom (kolom yang tidak ada di dict tidak akan diisi). Ekspresi reguler, string, dan daftar atau dikte dari objek semacam itu juga diperbolehkan inplace bool, default SalahJika Benar, lakukan operasi di tempat dan kembalikan Tidak Ada batas int, default Tidak adaKesenjangan ukuran maksimum untuk pengisian maju atau mundur regex bool atau tipe yang sama dengan to_replace, default FalseApakah akan menafsirkan to_replace dan/atau nilai sebagai ekspresi reguler. Jika ini >>> df.replace([0, 1, 2, 3], 4) A B C 0 4 5 a 1 4 6 b 2 4 7 c 3 4 8 d 4 4 9 e5 maka to_replace harus berupa string. Alternatifnya, ini bisa berupa ekspresi reguler atau daftar, dict, atau larik ekspresi reguler yang mana to_replace harus >>> df.replace([0, 1, 2, 3], 4) A B C 0 4 5 a 1 4 6 b 2 4 7 c 3 4 8 d 4 4 9 e2metode {'pad', 'isi', 'bfill'} Metode yang digunakan when untuk penggantian, when to_replace adalah skalar, list atau tuple dan nilainya adalah >>> df.replace([0, 1, 2, 3], 4) A B C 0 4 5 a 1 4 6 b 2 4 7 c 3 4 8 d 4 4 9 e2 Berubah di versi 0. 23. 0. Ditambahkan ke DataFrame. Pengembalian SeriObjek setelah penggantian RaisesAssertionError
Lihat juga Isi nilai NA Ganti nilai berdasarkan kondisi boolean Penggantian string sederhana Catatan
Contoh Skalar `ke_ganti` dan `nilai` >>> s = pd.Series([1, 2, 3, 4, 5]) >>> s.replace(1, 5) 0 5 1 2 2 3 3 4 4 5 dtype: int64 >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_ Daftar-seperti `to_replace` >>> df.replace([0, 1, 2, 3], 4) A B C 0 4 5 a 1 4 6 b 2 4 7 c 3 4 8 d 4 4 9 e_ >>> df.replace([0, 1, 2, 3], [4, 3, 2, 1]) A B C 0 4 5 a 1 3 6 b 2 2 7 c 3 1 8 d 4 4 9 e >>> s.replace([1, 2], method='bfill') 0 3 1 3 2 3 3 4 4 5 dtype: int64 dict-seperti `to_replace` >>> df.replace({0: 10, 1: 100}) A B C 0 10 5 a 1 100 6 b 2 2 7 c 3 3 8 d 4 4 9 e >>> df.replace({'A': 0, 'B': 5}, 100) A B C 0 100 100 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e >>> df.replace({'A': {0: 100, 4: 400}}) A B C 0 100 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 400 9 e Ekspresi reguler `to_replace` >>> df = pd.DataFrame({'A': ['bat', 'foo', 'bait'], .. 'B': ['abc', 'bar', 'xyz']}) >>> df.replace(to_replace=r'^ba.$', value='new', regex=True) A B 0 new abc 1 foo new 2 bait xyz >>> df.replace({'A': r'^ba.$'}, {'A': 'new'}, regex=True) A B 0 new abc 1 foo bar 2 bait xyz >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_0 >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_1 >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_2 Bandingkan perilaku >>> s.replace([1, 2], method='bfill') 0 3 1 3 2 3 3 4 4 5 dtype: int647 dan >>> s.replace([1, 2], method='bfill') 0 3 1 3 2 3 3 4 4 5 dtype: int648 untuk memahami kekhasan parameter to_replace >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_3 Ketika seseorang menggunakan dict sebagai nilai to_replace, itu seperti nilai dalam dict sama dengan parameter value. >>> s.replace([1, 2], method='bfill') 0 3 1 3 2 3 3 4 4 5 dtype: int647 setara dengan >>> df.replace({0: 10, 1: 100}) A B C 0 10 5 a 1 100 6 b 2 2 7 c 3 3 8 d 4 4 9 e0 >>> df = pd.DataFrame({'A': [0, 1, 2, 3, 4], .. 'B': [5, 6, 7, 8, 9], .. 'C': ['a', 'b', 'c', 'd', 'e']}) >>> df.replace(0, 5) A B C 0 5 5 a 1 1 6 b 2 2 7 c 3 3 8 d 4 4 9 e_4 Ketika >>> df.replace({0: 10, 1: 100}) A B C 0 10 5 a 1 100 6 b 2 2 7 c 3 3 8 d 4 4 9 e1 tidak secara eksplisit diteruskan dan to_replace adalah skalar, daftar atau tupel, ganti menggunakan parameter metode (default 'pad') untuk melakukan penggantian. Jadi inilah mengapa nilai 'a' diganti dengan 10 di baris 1 dan 2 dan 'b' di baris 4 dalam kasus ini Bagaimana cara mengganti string menggunakan kamus Python?Untuk mengganti kata dalam string menggunakan kamus. . Gunakan perulangan for untuk mengulangi item kamus Gunakan str. metode replace() untuk mengganti kata dalam string dengan item kamus str. metode replace() akan mengembalikan string baru dengan kecocokan yang diganti Bagaimana cara mengubah nilai daftar menggunakan kamus Python?Metode 1. Menggunakan fungsi append()
. Sintaksis. kamus[baris]['kunci']. tambahkan('nilai')
Bagaimana Anda mengganti string tertentu dalam daftar?Ganti string tertentu dalam daftar. Jika Anda ingin mengganti rangkaian elemen daftar, gunakan metode string replace() untuk setiap elemen dengan pemahaman daftar . Jika tidak ada string yang akan diganti, penerapan replace() tidak akan mengubahnya, jadi Anda tidak perlu memilih elemen dengan kondisi if.
Bisakah Anda mengonversi daftar ke kamus dengan Python?Anda dapat mengubah daftar Python menjadi kamus menggunakan pemahaman kamus, dict. fromkeys(), atau metode zip() . Ketiga metode membuat kamus baru. Mereka tidak mengubah daftar yang ada. |