Boo*_*d16 4 label replace nan dataframe pandas
我有一个如下所示的 DataFrame:
one | two
a | 2 | 5
b | 3 | 6
NaN | 0 | 0
Run Code Online (Sandbox Code Playgroud)
如何用字符串替换索引中的 NaN,比如“无标签”?
我试过:
df = df.replace(np.NaN, "No label")
Run Code Online (Sandbox Code Playgroud)
和
df.index = df.index.replace(np.NaN, "No label")
Run Code Online (Sandbox Code Playgroud)
但是得到了
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)
您可以先将原始索引作为系列处理,然后重新分配索引:
import pandas as pd
import numpy as np
df = pd.DataFrame({'one': [2, 3, 0], 'two': [5, 6, 0]}, index=['a', 'b', np.nan])
df.index = pd.Series(df.index).replace(np.nan, 'No label')
print df
Run Code Online (Sandbox Code Playgroud)
输出:
one two
a 2 5
b 3 6
No label 0 0
Run Code Online (Sandbox Code Playgroud)
使用Index.fillna
:
df.index = df.index.fillna('No label')
print (df)
one two
a 2 5
b 3 6
No label 0 0
Run Code Online (Sandbox Code Playgroud)