如何使用Python获取行为空白的Excel的列名
在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']=
我不知道如何遍历列的每一行并获取 ['Results'] 列中写入的空白行的列名,以 ,
回答
使用df.dot和np.where和一些字符串添加可以实现这一点。
注意: 如果Result您的 df 中已存在列,请先将其删除
如果您的空白是空白字符串,您可以执行以下操作:
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"))
print(out)
col1 col2 col3 col4 col5 col6 Result
0 AB BC CD EF GH IJ No Gaps
1 AN AP NaN AR AS AT col3 not available
2 BP NaN BQ BR NaN BT col2,col5 not available
3 BZ BY NaN NaN BX BW col3,col4 not available
4 CP CQ CR CS NaN NaN col5,col6 not available