Python 如何选择列标题中的哪个nan
我会选择第一个楠被命名为学校,而另一个楠被命名为年级 原始列标题:Python 如何选择列标题中的哪个nan,python,pandas,dataframe,Python,Pandas,Dataframe,我会选择第一个楠被命名为学校,而另一个楠被命名为年级 原始列标题: Name Address nan Class Subject nan 这就是我想要的结果: Name Address School Class Subject Grade 当我尝试此代码时: df = df.rename(columns={np.nan:'School'}) 这是我的代码结果: Name Address School Class Subject School 您可以遍历这些列,如果遇到nan,则将其替
Name Address nan Class Subject nan
这就是我想要的结果:
Name Address School Class Subject Grade
当我尝试此代码时:
df = df.rename(columns={np.nan:'School'})
这是我的代码结果:
Name Address School Class Subject School
您可以遍历这些列,如果遇到
nan
,则将其替换为正确的列:
cols=[]
计数=1
对于df.columns中的列:
如果列==np.nan:
如果计数=1:
cols.append('学校')
否则,如果计数=2:
cols.append('Grade'))
其他:
cols.append(列)
计数+=1
其他:
cols.append(列)
df.columns=cols
我将做什么
s=df.columns.to_series()
s[s.isnull()]=['school','grade']
df.columns=s
有没有一种方法可以在没有循环的情况下指定nan?我喜欢这个方法,因为您不必事先知道,也不必首先计算出非
nan
列名。
df.columns = ["Name", "Address", "School", "Class", "Subject", "Grade"]