Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแทนที่สตริงด้วยตัวเลขใน Python สำหรับการวิเคราะห์ข้อมูล


บางครั้งมีความจำเป็นต้องแปลงสตริงเป็นตัวเลข (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) เป็นค่าจำนวนเต็ม และมีหลายกรณีที่เกิดขึ้นเมื่อคุณมีข้อกำหนดเดียวกันในการเปลี่ยนฟิลด์ข้อมูลจากสตริงเป็นจำนวนเต็ม