Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何选择列标题中的哪个nan_Python_Pandas_Dataframe - Fatal编程技术网

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"]