以下是我在Excel表格中的数据示例。熊猫返回未命名的列
A B C
1 2 3
4 5 6
我尝试使用下面的代码来获取列名:
p1 = list(df1t.columns.values)
输出是这样
[A, B, C, 'Unnamed: 3', 'unnamed 4', 'unnamed 5', .....]
我检查Excel工作表中,只有三列命名为A,B和C.其他列为空白。任何建议?
以下是我在Excel表格中的数据示例。熊猫返回未命名的列
A B C
1 2 3
4 5 6
我尝试使用下面的代码来获取列名:
p1 = list(df1t.columns.values)
输出是这样
[A, B, C, 'Unnamed: 3', 'unnamed 4', 'unnamed 5', .....]
我检查Excel工作表中,只有三列命名为A,B和C.其他列为空白。任何建议?
有问题的一些单元格不是空的,但包含一些空格。
如果用过滤Unnamed
需要列名:
cols = [col for col in df if not col.startswith('Unnamed:')]
print (cols)
['A', 'B', 'C']
样品与file:
df = pd.read_excel('https://dl.dropboxusercontent.com/u/84444599/file_unnamed_cols.xlsx')
print (df)
A B C Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7
0 4.0 6.0 8.0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
cols = [col for col in df if not col.startswith('Unnamed:')]
print (cols)
['A', 'B', 'C']
另一种解决方案:
cols = df.columns[~df.columns.str.startswith('Unnamed:')]
print (cols)
Index(['A', 'B', 'C'], dtype='object')
而对于回报通过的cols所有列使用:
print (df[cols])
A B C
0 4.0 6.0 8.0
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
,如有必要去除所有NaN
s行:
print (df[cols].dropna(how='all'))
A B C
0 4.0 6.0 8.0
是'df1t'一个'DataFrame'? – danche
似乎excel中的另一个单元格中有一些空格。 – jezrael
是的,这个代码:df1t = pd.read_excel(“/ Users/mz/Desktop/ef_rated_1.xlsx”) – Mary