熊猫重命名多个NaN列名称

时间:2020-05-20 14:45:35

标签: python pandas dataframe

读取csv文件时,我的数据框具有以下列名称:

df.columns

Index([nan,"A", nan, "B", "C", nan],dtype='object')

由于未知原因,它不会像通常那样自动将它们命名为"Unnamed:0"

因此,有可能将多个nan列重命名为Unnamed:0,Unnamed:1,依此类推,具体取决于有多少nan列-nan的数量列会有所不同。

1 个答案:

答案 0 :(得分:1)

首先将列转换为series,然后将累积计数cumcount应用于布尔条件,如果出现空值,则为True。然后使用条件值填充空值。

s = pd.Series(df.columns)

print(s)


0    NaN
1      A
2    NaN
3      B
4      C
5    NaN


s = s.fillna('unnamed:' + (s.groupby(s.isnull()).cumcount() + 1).astype(str))

print(s)

0    unnamed:1
1            A
2    unnamed:2
3            B
4            C
5    unnamed:3
dtype: object


df.columns = s