Pandas:如何用字符串替换 nan 值


您可以使用以下方法将 pandas DataFrame 中的 NaN 值替换为字符串:

方法1:在整个DataFrame中用字符串替换NaN值

 df. fillna ('', inplace= True )

方法2:将特定列中的NaN值替换为字符串

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

方法3:用列中的字符串替换NaN值

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

以下示例展示了如何将每种方法与以下 pandas 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:在整个DataFrame中用字符串替换NaN值

以下代码展示了如何用空字符串替换整个 DataFrame 中的每个 NaN 值:

 #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 值已替换为字符串“none”,但“助攻”列中的 NaN 值保持不变。

方法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:如何根据条件替换列中的值
Pandas:如何用零替换 NaN 值
Pandas:如何计算DataFrame中的缺失值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注