Pandas重命名多个NaN列名

问题描述 投票:1回答:1

当读取csv文件时,我的数据框有这些列名。

df.columns:

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

不知道为什么,它没有自动将它们命名为 "Unnamed:0" 等通常的做法。

因此,是否可以将多个 nan 列改为Unnamed:0,Unnamed:1,以此类推,取决于有多少个 nan 栏的数量。nan 列名各不相同。

python pandas dataframe
1个回答
1
投票

首先将你的列转换为 "Unnamed:0 "和... 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
© www.soinside.com 2019 - 2024. All rights reserved.