Pandas: วิธีแทนที่ค่า nan ด้วยสตริง


คุณสามารถใช้วิธีการต่อไปนี้เพื่อแทนที่ค่า NaN ด้วยสตริงใน Pandas DataFrame:

วิธีที่ 1: แทนที่ค่า NaN ด้วยสตริงทั่วทั้ง DataFrame

 df. fillna ('', inplace= True )

วิธีที่ 2: แทนที่ค่า NaN ด้วยสตริงในคอลัมน์เฉพาะ

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. fillna ('')

วิธีที่ 3: แทนที่ค่า NaN ด้วยสตริงในคอลัมน์

 df. col1 = df. col1 . fillna ('')

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับ DataFrame แพนด้าต่อไปนี้:

 import pandas as pd
import numpy as np

#create DataFrame with some NaN values
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [np.nan, 11, 7, 7, 8, 6, 14, 15],
                   ' assists ': [5, np.nan, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, np.nan, 6, 5, 9, np.nan]})

#view DataFrame
df

team points assists rebounds
0 A NaN 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 NaN
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 NaN

วิธีที่ 1: แทนที่ค่า NaN ด้วยสตริงทั่วทั้ง DataFrame

รหัสต่อไปนี้แสดงวิธีการแทนที่แต่ละค่า NaN ใน DataFrame ทั้งหมดด้วยสตริงว่าง:

 #replace NaN values in all columns with empty string
df. fillna ('', inplace= True )

#view updated DataFrame
df

	team points assists rebounds
0 A 5.0 11.0
1 A 11.0 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0	
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7B 15.0 4.0	

โปรดทราบว่าแต่ละค่า NaN ในแต่ละคอลัมน์จะถูกแทนที่ด้วยสตริงว่าง

วิธีที่ 2: แทนที่ค่า NaN ด้วยสตริงในคอลัมน์เฉพาะ

รหัสต่อไปนี้แสดงวิธีแทนที่ค่า NaN ในคอลัมน์เฉพาะด้วยสตริงเฉพาะ:

 #replace NaN values in 'points' and 'rebounds' columns with 'none'
df[[' points ', ' rebounds ']] = df[[' points ', ' rebounds ']]. fillna (' none ')

#view updated DataFrame
df

        team points assists rebounds
0 A none 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 none
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 none	

โปรดทราบว่าค่า NaN ในคอลัมน์ “points” และ “rebounds” ถูกแทนที่ด้วยสตริง “none” แต่ค่า NaN ในคอลัมน์ “assists” ยังคงไม่เปลี่ยนแปลง

วิธีที่ 3: แทนที่ค่า NaN ด้วยสตริงในคอลัมน์

รหัสต่อไปนี้แสดงวิธีแทนที่ค่า NaN ในคอลัมน์ด้วยสตริงเฉพาะ:

 #replace NaN values in 'points' column with 'zero'
df. points = df. points . fillna (' zero ')

#view updated DataFrame
df

	team points assists rebounds
0 To zero 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 NaN
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 NaN	

โปรดทราบว่าค่า NaN ในคอลัมน์ “คะแนน” ถูกแทนที่ด้วยสตริง “ศูนย์” แต่ค่า NaN ในคอลัมน์ “ช่วยเหลือ” และ “รีบาวน์” ยังคงไม่เปลี่ยนแปลง

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:

Pandas: วิธีแทนที่ค่าในคอลัมน์ตามเงื่อนไข
Pandas: วิธีแทนที่ค่า NaN ด้วยศูนย์
Pandas: วิธีนับค่าที่หายไปใน DataFrame

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *