Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Dalam tutorial ini, kami akan menyemak semula topik yang saya bincangkan sebelum ini tentang cara menyahpangsi berbilang lajur dalam Power Query menggunakan List.Zip. Seorang ahli LuckyTemplates bertanya di tentang cara menjadikan kaedah itu dinamik. Anda boleh menonton video penuh tutorial ini di bahagian bawah blog ini.
Saya telah melabelkan ini lanjutan kerana kami akan menulis beberapa fungsi M dan beberapa daripadanya mungkin baru kepada anda.
Dengan itu, mari pergi ke Power Query.
Isi kandungan
Data Dalam Format Jadual
Seperti yang anda lihat, data ini telah pun diubah menjadi format tablet yang sesuai untuk analisis. Proses itu, walaupun sangat penting, tidak akan dibincangkan di sini, tetapi kami akan membincangkan secara ringkas setiap langkah.
Dalam langkah sumber, kami melihat pengulangan berterusan pasangan nilai, iaitu jam dan kenalan untuk setiap atribut yang disenaraikan di atas.
Dalam Langkah Gunaan , anda boleh melihat langkah-langkah yang lain. Kami mengalih keluar beberapa baris teratas, mengalih keluar lajur kosong, membersihkan nilai teks kami dan mengisinya. Kemudian, kami menukar data kami, mengalih keluar rekod kosong, menggabungkan lajur satu dan dua, membersihkan nilai teks kami sekali lagi dan menukar semula data kami.
Kami mencipta langkah tersuai, yang akan kami periksa dengan lebih terperinci kemudian, mengekstrak nilai daripada senarai kami, dan kemudian akhirnya menukar jenisnya.
Mari lihat keseluruhan kod. Perkara yang kami minati di sini ialah fungsi List.Zip . Rekap ringkas, ia memerlukan satu senarai sebagai parameter dan kemudian mengembalikan senarai. Akibatnya, kami melihat bahawa senarai tunggal ini dalam keadaan ini mengandungi tiga senarai berasingan.
Jika kita meneliti senarai pertama, ia mengandungi nama atribut berkod keras, hanya nilai teks yang ditaip. Senarai kedua mengandungi rujukan lajur berkod keras untuk nilai jam. Senarai akhir mengandungi rujukan lajur berkod keras untuk nilai kenalan.
List.Zip kemudian mengambil elemen daripada setiap tiga senarai ini dan menggabungkannya berdasarkan kedudukannya dalam senarai baharu. Sebagai contoh, setiap elemen pertama daripada senarai tersebut akan digabungkan ke dalam senarai baharu. Perkara yang sama berlaku untuk semua nilai yang disenaraikan kedua dalam senarai itu, dan seterusnya.
Nilai berkod keras boleh dibimbangkan jika atribut tidak mungkin berubah dari semasa ke semasa. Jadi jika lain kali, tidak semua item ada atau item baru wujud, anda boleh menghadapi masalah.
Mengubah Kod Untuk Nyahpaut Berbilang Lajur Secara Dinamik
Jadi bagaimana kita membuat ini dinamik?
Perkara pertama yang saya lakukan ialah melangkah melalui kod untuk melihat sama ada terdapat tempat di mana kita boleh mengambil nilai atribut tersebut tanpa perlu mereka bentuk langkah berasingan untuk mencapainya. Oleh itu, kita akan melangkah ke belakang melalui kod, dan langkah RemoveNull ini adalah sempurna.
Anda boleh melihat bahawa ia menyenaraikan semua nilai atribut di sini dalam lajur satu. Kita boleh menggunakan antara muka pengguna untuk mengekstraknya.
Jadi klik kanan pengepala itu, dan di bawah pilih Tambah sebagai pertanyaan baharu .
Kami mendapat senarai ini dan itu berita baik kerana kami mahu menggantikan senarai berkod keras yang kami lihat sebelum ini dengan senarai dinamik. Apa yang perlu kita lakukan ialah mengemaskan nilai.
Mari mulakan dengan mengalih keluar nulls tersebut. Jadi di dalam bar formula, kami akan menambah List.RemoveNulls . Seperti yang anda lihat sekarang, semua item diulang dan itu disebabkan pasangan nilai. Ia disenaraikan sekali untuk beberapa jam.
Dan sekali lagi, untuk kenalan, untuk mengalih keluar pendua tersebut, kita boleh menambah List.Distinct . Sekarang kami telah mencipta logik ini dan apa yang perlu kami lakukan ialah menyalinnya dan menampalnya kembali ke pertanyaan sampel kami.
Dalam pertanyaan Contoh , buka Editor Lanjutan dan buat nama pembolehubah baharu. Mari kita panggilnya, AttributeList . Kemudian kami menampal kod dan meletakkan koma.
Sekarang mari kita kembali ke langkah Tersuai kami. Di dalam List.Zip, kami boleh menggantikan senarai pertama itu dengan nama pembolehubah kami (AttributeList).
Sekarang mari kita lihat dengan lebih dekat senarai kedua. Kami tahu ia merujuk nama lajur, dan setiap nama lajur itu bermula dengan atribut yang sama yang telah kami ada dalam senarai itu diikuti dengan ruang dan teks "jam".
Kita hanya perlu menambah akhiran pada setiap item. Jadi mari kita undur satu langkah dan tambah lajur tersuai untuk mencipta logik.
Nyahpaut Berbilang Lajur Secara Dinamik: Menambah Logik Lajur Tersuai
Ia hanya lajur sementara, jadi kami tidak perlu memberikannya nama yang betul. Kami akan mengeluarkannya sebaik sahaja kami selesai.
Untuk menukar nilai dalam senarai, kita boleh menggunakan fungsi List.Transform . Kami perlu mengubah nilai dalam AttributeList kami , jadi saya akan menampalnya.
Di sini dalam pengepala, kita melihat bahawa nilai teks bermula dengan huruf besar, dan kemudian yang lain adalah huruf kecil. Atribut kami hanya mengandungi perkataan berhuruf besar, jadi kami perlu mengubah nilai teks itu juga. Dan kami boleh menggunakan garis bawah untuk mengakses setiap item senarai dan kami akan menambah akhiran itu.
Dengan itu, kami mendapat nilai senarai dalam lajur kami. Tidak kira yang mana satu yang anda pilih, tetapi cuma klik ke tepi dalam ruang putih dalam mana-mana daripadanya di sini.
Di bawah halaman, kami melihat pratonton senarai yang telah kami buat. Oleh itu, anda melihat bahawa kami mempunyai pengepala lajur tersebut kini diserikan dengan betul supaya sepadan dengan pengepala lajur yang kami lihat di sini dengan senarai ini.
Kami kini mempunyai cara untuk mengenal pasti medan daripada rekod kami yang ingin kami akses. Jadi mari buka kotak dialog lajur tersuai kami sekali lagi dan tambah Record.SelectFields . Ia mahukan rekod sebagai rekod, jadi kami boleh menggunakan garis bawah itu untuk mengakses rekod semasa yang kami gunakan. Dan kemudian kami telah memberikannya senarai dengan semua nama medan tersebut, jadi tambahkan kurungan penutup dan tekan OK .
Jadi kami tidak lagi mempunyai senarai, tetapi kami kini mendapat rekod. Mari klik ke sisi dalam ruang putih sekali lagi untuk melihat kandungan rekod itu. Di sini kita melihat bahawa ia menyenaraikan nama medan rekod dan nilai medan rekod.
Tetapi kami hanya berminat dengan nilai medan rekod, jadi kami perlu mengeluarkannya. Mari kembali ke kotak dialog lajur tersuai kami dan tambahkan Record.FieldsValues .
Kami kini mendapat senarai sekali lagi dan bukan lagi rekod. Kami mengklik ke sisi dalam ruang putih sekali lagi, dan anda melihat bahawa kami kini mempunyai senarai dengan hanya nilai tersebut. Jadi itu kelihatan baik.
Mari kita salin logik penuh yang telah kita buat, kecuali kurungan penutup terakhir itu. Dan kini kami boleh mengalih keluar lajur sementara kami kerana kami tidak lagi memerlukannya.
Pada bar formula kami, kami memilih senarai kedua kami dan menggantikannya dengan logik kami.
Untuk membuat senarai dengan nilai medan rekod untuk kenalan, yang perlu kita ubah ialah akhiran. Jadi kita boleh memilih senarai terakhir itu juga, dan tampal dalam logik kita.
Kemudian, bukannya jam , mari tukar ini kepada kenalan .
Tiada ralat dan ia kelihatan baik. Ini kini merupakan penyelesaian dinamik untuk menyahpangsi berbilang lajur.
Lajur LuckyTemplates Unpivot – Tutorial Power Query
Cara Menyahpivot Lajur Dalam LuckyTemplates
Unpivot Dan Asas Pivot Dalam LuckyTemplates – Semakan Editor Pertanyaan
Kesimpulan
Begitulah cara anda menyahpaut berbilang lajur secara dinamik dalam menggunakan List.Zip.
Jika atribut baharu masuk, ia akan diambil secara automatik oleh AttributeList. Dan apabila item tidak lagi wujud, ia tidak akan hadir dalam senarai itu.
Saya harap anda telah menikmati yang ini. Tonton video penuh di bawah untuk mendapatkan butiran lanjut tentang tutorial ini dan lihat pautan di bawah untuk lebih banyak kandungan sekitar nyahpaut berbilang lajur dalam LuckyTemplates.
Semua yang terbaik
Melissa
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.
Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.
Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.
Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.
Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.
Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.
Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.
Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.
Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu