以下是我在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