Python 重命名多个NaN列名

Python 重命名多个NaN列名,python,pandas,dataframe,Python,Pandas,Dataframe,读取csv文件时,我的数据框具有以下列名: df.列: 索引([nan,“A”,nan,“B”,“C”,nan],dtype='object') 由于未知原因,它不会像通常那样自动将它们命名为“Unnamed:0”等等 因此,可以将多个nan列重命名为Unnamed:0、Unnamed:1等,根据存在的nan列的数量,nan列的数量会有所不同。首先将列转换为系列,然后对布尔条件应用累积计数cumcount,如果出现空值,则该条件为真。然后使用条件值填充空值 s = pd.Series(df.co

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

df.列

索引([nan,“A”,nan,“B”,“C”,nan],dtype='object')

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


因此,可以将多个
nan
列重命名为Unnamed:0、Unnamed:1等,根据存在的
nan
列的数量,
nan
列的数量会有所不同。

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

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