Python 检查dataframe中是否有未命名的列,然后返回Pandas中的指示
给定一个从excel文件复制的小数据集Python 检查dataframe中是否有未命名的列,然后返回Pandas中的指示,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,给定一个从excel文件复制的小数据集df,如下所示,我需要检查中是否有未命名的列: id floor Unnamed: 2 type 0 1 13 NaN office 1 2 12 NaN office 2 3 9 NaN office 3 4 9 NaN office 4 5 7 NaN offi
df
,如下所示,我需要检查中是否有未命名的列
:
id floor Unnamed: 2 type
0 1 13 NaN office
1 2 12 NaN office
2 3 9 NaN office
3 4 9 NaN office
4 5 7 NaN office
5 6 6 NaN office
6 7 9 NaN office
7 8 5 NaN office
8 9 5 NaN office
9 10 5 NaN office
10 11 4 NaN retail
代码:
输出:
事实上,当存在未命名列时,我希望返回找到的未命名列
,否则返回正常
,这可能需要修改如下代码:
'Unamed columns found' if df1.columns.str.contains('^Unnamed') else 'Normal'
[x for x in df1.columns[df1.columns.str.contains('^Unnamed')]]
我如何修改上面的代码?请注意,无需循环并返回多个Normal
非常感谢您的帮助。如您在评论中所说,请尝试
f-string
s = f'''{'Unnamed columns were found in your dataset'
if df.columns.str.contains('^Unnamed:').any() else 'normal'}'''
In [96]: print(s)
Unnamed columns were found in your dataset
如果您想要注释中的数字,请尝试以下操作
m = df.columns.str.contains('^Unnamed:')
s = f'''{str(m.sum()) + ' Unnamed columns were found in your dataset'
if m.any() else 'normal'}'''
In [140]: s
Out[140]: '1 Unnamed columns were found in your dataset'
抱歉,我的问题可能不清楚,对于示例数据集,我只想返回一个指示:
在您的数据集中找到了未命名的列。
。如果有多个未命名:…
,您仍然希望只打印一行在您的数据集中找到了未命名的列。
?是的,一个短语可以,是否可以添加计数未指定列的数量
?e、 g.在您的数据集中发现了3个未命名的列
。如果没有未命名:…
@ahbon:I编辑以添加编号为的解决方案,如您在评论中所述。检查我的最新答案
s = f'''{'Unnamed columns were found in your dataset'
if df.columns.str.contains('^Unnamed:').any() else 'normal'}'''
In [96]: print(s)
Unnamed columns were found in your dataset
m = df.columns.str.contains('^Unnamed:')
s = f'''{str(m.sum()) + ' Unnamed columns were found in your dataset'
if m.any() else 'normal'}'''
In [140]: s
Out[140]: '1 Unnamed columns were found in your dataset'