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