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

การแทนที่สตริงด้วยตัวเลขใน Python สำหรับ Data Analysis


บางครั้งมีข้อกำหนดในการแปลงสตริงเป็นตัวเลข (int/float) ในการวิเคราะห์ข้อมูล สำหรับแต่ละสตริง เราสามารถกำหนดค่าจำนวนเต็มที่ไม่ซ้ำกันเพื่อแยกความแตกต่างของค่าสตริงได้

สำหรับสิ่งนี้ เราใช้ข้อมูลในไฟล์ Comma Separated Values ​​(CSV) สมมติว่าเรามีไฟล์ excel ที่มีข้อมูล CSV ดังนี้ -

บริษัท อุตสาหกรรม คำแนะนำ
ธนาคาร HDFC การเงิน ถือ
อพอลโล การดูแลสุขภาพ ซื้อ
ฮีโร่ รถยนต์ ประสิทธิภาพต่ำ
ใช่ แบงค์ การเงิน ถือ
M&M รถยนต์ ประสิทธิภาพต่ำ
ฟอร์ติส การดูแลสุขภาพ ซื้อ
มารุติ รถยนต์ ประสิทธิภาพต่ำ

ด้านบนนี้เป็นเพียงสองสามบรรทัดจากชุดข้อมูลขนาดใหญ่ เราต้องให้คำแนะนำที่แตกต่างกัน .i.e. Buy, Hold, Underperform ฯลฯ ค่าจำนวนเต็ม ซึ่งจะเชื่อมโยงไปยังข้อมูลเมตาของเรา ดังนั้นสำหรับอินพุตข้างต้น ผลลัพธ์ที่คาดหวังของเราจะเป็นดังนี้ -

บริษัท อุตสาหกรรม คำแนะนำ
ธนาคาร HDFC การเงิน 2
อพอลโล การดูแลสุขภาพ 1
ฮีโร่ รถยนต์ 3
ใช่ แบงค์ การเงิน 2
M&M รถยนต์ 3
ฟอร์ติส การดูแลสุขภาพ 1
มารุติ รถยนต์ 3

นี่คือวิธีการแทนที่สตริง (ค่าคอลัมน์) เป็นจำนวนเต็ม

รหัส 1

#Import required library
import pandas as pd
#Import the CSV file into Python using read_csv() from pandas
dataframe = pd.read_csv("data_pandas1.csv")
#Create the dictionary of key-value pair, where key is
#your old value(string) and value is your new value(integer).
Recommendation = {'Buy': 1, 'Hold': 2, 'Underperform': 3}
#Assign these different key-value pair from above dictiionary to your table
dataframe.Recommendation = [Recommendation[item] for item in dataframe.Recommendation]
#New table
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

มีอีกวิธีหนึ่งในการเขียนโค้ดด้านบน ซึ่งเราไม่จัดการกับพจนานุกรม แต่เรากำหนดค่าอื่นให้กับฟิลด์คอลัมน์โดยตรง (คำแนะนำที่นี่) หากเงื่อนไขตรงกัน

#Import required library
import pandas as pd
#Import the CSV file into Python using read_csv() from pandas
dataf = pd.read_csv("data_pandas1.csv")
#Directly assigning individual fields of Recommendation column different integer value
#if condition matches .i.e.In the dataframe, recommendation columns we have "Buy" we'll assign
# integer 1 to it.
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) เป็นค่าจำนวนเต็ม และมีหลายกรณีที่เกิดขึ้นเมื่อคุณมีข้อกำหนดเดียวกันในการเปลี่ยนฟิลด์ข้อมูลจากสตริงเป็นจำนวนเต็ม