什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
我將向您展示如何從多列中的合併分隔數據中提取記錄。這會將您的數據轉換為更適合分析的格式。
有多種方法可以做到這一點。但對於本教程,我將重點關注 Ankit 建議的解決方案,他是我們 LuckyTemplates 社區的一員。您可以在本博客底部觀看本教程的完整視頻。
目錄
使用 Text.Split
對於此解決方案,我將使用Power Query從分隔數據中提取記錄。
下面是Power Query中的機會表。
如您所見,多個值連接到一個記錄中。例如,在第二行中,顯示了 4 個不同的值。這 4 個值在“競爭對手”和“競爭對手金額”列下合併在一起。
我要做的第一件事是使用Text.Split。
Text.Split在根據特定分隔符拆分文本值後返回一個列表。
要開始使用Text.Split,我將復制此表中使用的分隔符。
您會注意到,一旦我單擊表中的該條目,記錄值就會顯示在底部。我將從那裡複製定界符。
完成後,我將添加一個自定義列。
我還不必更改名稱。我只需要在Custom Column Formula下做一個Text.Split。
此公式需要一個文本值。因此,我只需選擇右側窗格中的“競爭對手”列,它就會自動添加到公式中。
我還需要一個作為文本給出的分隔符。所以在一對引號內,我將粘貼我之前複製的分隔符。然後,我將添加右括號。
一旦我按下 OK,我將得到一個列表對象。
查看第一個列表,Competitors 和 Amounts 列都只顯示一個條目。因此,如果我單擊“自定義”列下列表對象旁邊的空白區域,它還會在底部顯示一個值。
對於第二條記錄,我有一個包含四個值的列表。這對應於“競爭對手”列和“金額”列中也顯示的 4 個值。
使用 List.Zip
現在我已經拆分了列表,下一步是從 Competitor Amounts 列添加相應的值。我要去List.Zip做那件事。
將 List.Zip 想像成一個真正的拉鍊。它需要一個列表列表並組合這些項目。
查看下面的示例,只需將第一個列表(1 和 2)視為拉鍊上的綠色軌道。
然後,將 3 和 4 視為紅色軌道。
當應用List.Zip時,它們會在中間聚集在一起。因此,第一組中的 1 個與第二組中的 3 個相結合。同樣的事情發生在 2 和 4 上。這可以在輸出中看到,其中已經形成了兩個新組。
有時所涉及的列表可能有不同的長度。這意味著如果合併列表, 將返回丟失的數據。為了在缺少數據的情況下創建精確對,添加了一個空值。
回到機會表,我將添加另一個自定義列。
這一次,我要將競爭對手數量列添加到公式中。
我還要添加List.Zip。
檢查下面,它表明沒有檢測到錯誤。
但是當我單擊“確定”並查看形成的新列時,我仍然遇到錯誤。
我將單擊錯誤旁邊的空白區域以查看詳細信息。它表明我收到了一個錯誤,因為我在列表周圍返回了一些參數。
查看公式,它表明引用 Competitors 列的語法返回了一個列表。
但是 Competitor Amounts 列的語法也返回了一個列表。
回想一下 List.Zip 的作用,它採用單個列表列表並將它們組合起來。
看到出現了兩個列表,我需要列表初始值設定項來將這些列表放在一起。這就是我添加這些大括號的原因。
在末尾添加右花括號後,我只需要按回車鍵。那會給我一個列表對象。
現在,當我單擊第一條記錄的一側時,它會顯示一個列表對象。這是正確的,在 Competitor Amounts 下,確實有一個值。
如果我對第二條記錄做同樣的事情,它會顯示一個包含 4 個列表的列表對象。這也與 Competitor Amounts 下分隔數據中的值數相匹配。
我將使用自定義列標題右側的側向箭頭將數據擴展到新行中。
當我擴展到新行時,請注意第二條記錄。
您會看到該記錄中的所有值都向下擴展。
當我單擊空白區域的一側時,我可以看到該嵌套列表的內容。由於第一條記錄的每一列只有一個值,因此我也在底部顯示了相同的數據。
但是,當我單擊第二條記錄時,您會看到我只顯示了分隔數據中給出的 4 個值中的第一個。
在第三條記錄上,我顯示了第二個值的組合。
所以我要再次使用側向箭頭。但這次,我將從該列表中提取值。
我要給它一個自定義分隔符。
我將使用雙管道作為分隔符。這應該使分隔數據中的值之間的區別更加清晰。
一旦我按下 OK,這些值就會連接到 Custom 列中。
清理數據
我不再需要 Competitor 和 Competitor Amounts 列,因此我將刪除這些列。
至於自定義列,我將拆分它。
在轉換選項卡上,我將選擇拆分列。我將按分隔符將其拆分。
在窗口中,我將以雙管為基礎。
一旦我按下確定,數據現在將被分成單獨的列。
我將重命名這些新列,以便更容易弄清楚數據的內容。我將再次稱其為“競爭對手”列。
然後我將另一列稱為金額列。
顯然,金額列包含數字。但是如果你看一下代表數據類型的圖標,它表明我有文本而不是數字。所以我會開始解決這個問題。
我住在歐洲,所以我們使用句點作為千位分隔符而不是逗號。我將使用替換值來清理它。
在窗口中,我只需要在“要查找的值”下放置一個逗號,並在“替換為”下放置一個句點。
一旦我按下 OK,所有的逗號現在都會顯示句點。
接下來我要做的是刪除值前面的美元符號。同樣,我將使用替換值工具。這次,我會將替換為的空間留空。
一旦我按下確定,這些值將只顯示沒有任何貨幣的數字。
向下看我的專欄,它還顯示了一個帶有雙破折號的條目。因為這可能會返回一個可能的錯誤,所以我將去掉那個雙破折號。
我將用空白替換雙破折號。
一旦我按下 OK,我就擁有了 Amount 列下所有條目的正確格式。
我現在可以單擊數據類型的圖標並選擇整數。
使用 Power Query 編輯器更改日期格式LuckyTemplates 中
使用 DAX Inside LuckyTemplates 合併值的 3 種方法
結論
正如我之前提到的,您可以通過不同的方式從分隔數據中提取值。但對我來說,這種方法是最簡單、最快的方法之一。
社區的一位成員那裡得到了這個解決方案的想法,這也表明了重要性。你真的可以從許多不同的角度看待每個問題。從那裡,您可以選擇您認為最適合您的解決方案。
一切順利,
梅麗莎
***** Learning LuckyTemplates?*****
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的