如何更改NaN标题的名称

时间:2017-08-07 11:18:49

标签: python pandas dataframe header

我目前使用的是数据帧,我正在堆叠它们以实现特定的格式。我有一个问题,我正在尝试更改标题的名称,但它不起作用(通过使用.. .rename(columns = {'NaN'='type',inplace = True),同样的事情我试图改变列的'6'到另一个的名称与原始提法相同。

这里:

                                               NaN Quantity
6                                                                 
01/06                       KULUTUS - CONSUMPTION  8976.27     
01/06  TEOLLISUUSKULUTUS - INDUSTRIAL CONSUMPTION  4121.36    
01/06             MUU KULUTUS - OTHER CONSUMPTION  4854.91

3 个答案:

答案 0 :(得分:6)

我认为您需要renameIndex.fillna {/ 1>} dict

df = df.rename(columns={np.nan: 'type'})
df.columns = df.columns.fillna('type')

样品:

df = pd.DataFrame([[1,4]], columns=[np.nan, 'a'])
print (df)
   NaN  a
0    1  4

print (df.columns.tolist())
[nan, 'a']

df1 = df.rename(columns={np.nan: 'type'})
print (df1)
   type  a
0     1  4
df.columns = df.columns.fillna('type')
print (df)
   type  a
0     1  4

答案 1 :(得分:0)

当标签中有.rename时,直接应用0.24.2仍然不能在熊猫版本nan中使用,对我来说似乎是个错误。注意:此标签首先由另一个pandas方法创建:pd.get_dummies(s,dummy_na=True)

我的解决方法是先将列标签转换为strdf.rename(columns=str).rename(columns={'nan':'new_lbl'})

答案 2 :(得分:0)

使用索引值为0.25.3的熊猫版本nan,调用df.rename(index={np.nan: 'new_label'})对我也不起作用。

按照tozCSS的建议,将所有索引标签重命名为字符串(尽管除了那个以外的所有其他标签都是...),然后重命名对我有用:

df.rename(index=str).rename(columns={'nan':'new_lbl'})

文档链接:pandas.DataFrame.rename