บางครั้งมีความจำเป็นต้องแปลงสตริงเป็นตัวเลข (int/float) ในการวิเคราะห์ข้อมูล สำหรับแต่ละสตริง เราสามารถกำหนดค่าจำนวนเต็มที่ไม่ซ้ำกันเพื่อแยกแยะค่าสตริง
สำหรับเรื่องนี้ เราใช้ข้อมูลในไฟล์ Comma Separated Values (CSV) สมมติว่าเรามีไฟล์ Excel ที่มีข้อมูล CSV ดังนี้ −
| Company | Industry | Recommendation |
|---|---|---|
| HDFC Bank | Finance | Hold |
| Apollo | Healthcare | Buy |
| Hero | Automobile | Underperform |
| Yes Bank | Finance | Hold |
| M&M | Automobile | Underperform |
| Fortis | Healthcare | Buy |
| Maruti | Automobile | Underperform |
ข้างต้นเป็นเพียงไม่กี่บรรทัดจากชุดข้อมูลขนาดใหญ่ เราต้องให้ค่าตัวเลขที่แตกต่างกันสำหรับคำแนะนำที่ต่างกัน เช่น Buy, Hold, Underperform เป็นต้น ซึ่งจะเชื่อมโยงกับข้อมูลเมตาของเรา ดังนั้นสำหรับอินพุตข้างต้น ผลลัพธ์ที่คาดหวังจะเป็นดังนี้ −
| Company | Industry | Recommendation |
|---|---|---|
| HDFC Bank | Finance | 2 |
| Apollo | Healthcare | 1 |
| Hero | Automobile | 3 |
| Yes Bank | Finance | 2 |
| M&M | Automobile | 3 |
| Fortis | Healthcare | 1 |
| Maruti | Automobile | 3 |
นี่คือวิธีการแทนที่ค่าสตริง (ค่าคอลัมน์) ด้วยจำนวนเต็ม
โค้ด 1
# นำเข้าไลบรารีที่จำเป็น import pandas as pd # นำเข้าไฟล์ CSV เข้า Python ด้วย read_csv() จาก pandas dataframe = pd.read_csv("data_pandas1.csv") # สร้างดิกชันนารีของคีย์-ค่า คีย์คือค่าเดิม (สตริง) และค่าคือค่าใหม่ (จำนวนเต็ม) Recommendation = {'Buy': 1, 'Hold': 2, 'Underperform': 3} # กำหนดคีย์-ค่าคู่นี้จากดิกชันนารีข้างต้นไปยังตารางของคุณ dataframe.Recommendation = [Recommendation[item] for item in dataframe.Recommendation] # ตารางใหม่ print(dataframe)
ผลลัพธ์
Company Industry Recommendation 0 HDFC Bank Finance 2 1 Apollo Healthcare 1 2 Hero Automobile 3 3 Yes Bank Finance 2 4 M&M Automobile 3 5 Fortis Healthcare 1 6 Maruti Automobile 3
มีอีกวิธีหนึ่งในการเขียนโค้ดข้างต้น ซึ่งเราไม่ต้องจัดการกับดิกชันนารี แต่เรากำหนดค่าอื่นให้กับฟิลด์คอลัมน์ (Recommendations ในที่นี้) โดยตรงหากเงื่อนไขตรงกัน
# นำเข้าไลบรารีที่จำเป็น import pandas as pd # นำเข้าไฟล์ CSV เข้า Python ด้วย read_csv() จาก pandas dataf = pd.read_csv("data_pandas1.csv") # กำหนดฟิลด์แต่ละฟิลด์ของคอลัมน์ Recommendation ค่าจำนวนเต็มที่ต่างกัน # หากเงื่อนไขตรงกัน .i.e. ใน dataframe คอลัมน์ recommendation มี "Buy" เราจะกำหนด # จำนวนเต็ม 1 ให้กับมัน dataf.Recommendation[data.Recommendation =='Buy'] =1 dataf.Recommendation[data.Recommendation =='Hold'] =2 dataf.Recommendation[data.Recommendation =='Underperform'] =3 print(dataf)
ผลลัพธ์
Company Industry Recommendation 0 HDFC Bank Finance 2 1 Apollo Healthcare 1 2 Hero Automobile 3 3 Yes Bank Finance 2 4 M&M Automobile 3 5 Fortis Healthcare 1 6 Maruti Automobile 3
ข้างต้นผมได้กล่าวถึงเพียงสองวิธีในการแทนที่ข้อมูลสตริงในตารางของคุณ (ไฟล์รูปแบบ CSV) เป็นค่าจำนวนเต็ม และมีหลายกรณีที่เกิดขึ้นเมื่อคุณมีข้อกำหนดเดียวกันในการเปลี่ยนฟิลด์ข้อมูลจากสตริงเป็นจำนวนเต็ม