Pandas 替换数据帧索引中的NaN
我有一个数据框,看起来像这样:Pandas 替换数据帧索引中的NaN,pandas,replace,label,dataframe,nan,Pandas,Replace,Label,Dataframe,Nan,我有一个数据框,看起来像这样: one | two a | 2 | 5 b | 3 | 6 NaN | 0 | 0 如何用字符串替换索引中的NaN,比如说“无标签” 我试过: df = df.replace(np.NaN, "No label") 及 但是得到 TypeError: expected string or buffer 您可以先将原始索引作为一个系列进行处理,然后重新分配索引: import pandas as pd import n
one | two
a | 2 | 5
b | 3 | 6
NaN | 0 | 0
如何用字符串替换索引中的NaN,比如说“无标签”
我试过:
df = df.replace(np.NaN, "No label")
及
但是得到
TypeError: expected string or buffer
您可以先将原始索引作为一个系列进行处理,然后重新分配索引:
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
输出:
one two
a 2 5
b 3 6
No label 0 0
使用:
如果任何人也需要处理多索引案例:
如果存在(df.index,pd.MultiIndex):
df.index=pd.MultiIndex.from_帧(
df.index.to_frame().fillna(“无标签”)
)
其他:
df.index=df.index.fillna(“无标签”)
dohh!这是我应该考虑的。这正是我想要的。谢谢有一种to_series
方法可以将索引
转换为series
:df.Index=df.Index.to_series()
one two
a 2 5
b 3 6
No label 0 0
df.index = df.index.fillna('No label')
print (df)
one two
a 2 5
b 3 6
No label 0 0