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

918 阅读2分钟

你可以使用以下方法在pandas DataFrame中用字符串替换NaN值。

方法1:在整个数据框架中用字符串替换NaN值

df.fillna('', inplace=True)

方法2: 在特定列中用字符串替换NaN值

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

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

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

下面的例子展示了如何在以下pandas数据框架中使用每种方法:

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值:

#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
7	B	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值被替换为字符串 "无",但 "助攻 "列中的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	A	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:如何计算数据帧中的缺失值