Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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获取行为空的Excel的列名_Python_Pandas_Dataframe - Fatal编程技术网

如何使用Python获取行为空的Excel的列名

如何使用Python获取行为空的Excel的列名,python,pandas,dataframe,Python,Pandas,Dataframe,在Excel工作表中的多个列中,需要从Excel工作表中查找每行的特定列的名称,并在不同的列中输入列的名称。如果列中没有任何一个具有空白值,则会将其写入无间隙 输入数据: col1 col2 col3 col4 col5 col6 Result AB BC CD EF GH IJ AN AP AR AS AT BP BQ BR

在Excel工作表中的多个列中,需要从Excel工作表中查找每行的特定列的名称,并在不同的列中输入列的名称。如果列中没有任何一个具有空白值,则会将其写入无间隙

输入数据:

col1    col2   col3   col4   col5   col6   Result
AB       BC     CD     EF     GH     IJ
AN       AP            AR     AS     AT
BP              BQ     BR            BT
BZ       BY                   BX     BW
CP       CQ     CR     CS
预期产出:

Result

No Gaps  
col3 is not available
col2, col5 not available 
col3, col4 not available
col5, col6 not available
到目前为止我已经尝试过的脚本:

if (df['col1'] || df['col2'] || df['col3'] || df['col4'] || df['col5'] || df['col6']).empty != True:
    df['Result']= "No Gaps"
else:
    df['Result']=

我不知道如何遍历该列的每一行,并获得在[[结果] ]列中所分隔的空白行的列名,

< P>与<强> < /强>和<强> <强> >和某些字符串添加,您可以实现此项。

注意:如果df中已经存在
Result
列,请先删除它

如果空格是空白字符串,则可以执行以下操作:

u = df.eq('').dot(df.columns+",").str.rstrip(",")
out = df.assign(Result=np.where(u.ne(''),u.add(" not available"),"No Gaps"))
如果它们是
nan

u = df.isna().dot(df.columns+",").str.rstrip(",")
out = df.assign(Result=np.where(u.ne(''),u.add(" not available"),"No Gaps"))

通过以及一些字符串添加,您可以实现这一点

注意:如果df中已经存在
Result
列,请先删除它

如果空格是空白字符串,则可以执行以下操作:

u = df.eq('').dot(df.columns+",").str.rstrip(",")
out = df.assign(Result=np.where(u.ne(''),u.add(" not available"),"No Gaps"))
如果它们是
nan

u = df.isna().dot(df.columns+",").str.rstrip(",")
out = df.assign(Result=np.where(u.ne(''),u.add(" not available"),"No Gaps"))


在这种情况下,“空白”是什么?既然pandas将空值显示为
NaN
,或者您的意思是像
'
@Erfan这样的空字符串-Blank仅为NaN,那么在这种情况下,“Blank”是什么?由于pandas将空值显示为
NaN
,或者您的意思是像
'
@Erfan-Blank这样的空字符串,因此@anky-u=df.isna().dot(df.columns+“,”).str.rstrip(“,”)将搜索所有列中的空值,如果我们必须在总共10列中只检查5列,那么需要做什么呢?在变量a中,您占用了5列,但在变量u中使用它时,您只保留了3列,我不明白。@Manz这是一个打字错误,很抱歉使用
a=df[['col1'、'col2'、'col3'、'col4'、'col5']]
然后
u=a.isna().dot(a.columns+“,”).str.rstrip(“,”)
基本上使用与
a
相同的代码-子集而不是
df
-完整的数据帧使用u=a.isna().dot(a.columns+”,”).str.rstrip(“,”)时,在每种情况下都会给出“True”输出。@Manz是您的空格
np.nan
还是“”空白字符串?如果值为
np.nan
,我可以测试并查看它是否适合我。你能仔细检查一下吗?@anky-u=df.isna().dot(df.columns+“,”).str.rstrip(“,”)它会在所有列中搜索空值,如果我们必须在总共10列中只检查5列,那么需要做什么呢?在变量a中,你占用了5列,但在变量u中使用它时,你只保留了3列,不明白。@Manz那是一个输入错误,很抱歉使用
a=df[['col1','col2','col3','col4','col5']
,然后使用
u=a.isna().dot(a.columns+“,”).str.rstrip(“,”)
基本上使用与
a
相同的代码子集而不是
df
-完整的数据框架使用u=a.isna().dot(a.columns+“,”,.str.rstrip(“,”,”),它在每种情况下都给出“True”输出。@Manz是您的空格
np.nan
还是“”空白字符串?如果值为
np.nan
,我可以测试并查看它是否适合我。你能再检查一下吗?