この問題は、CSVがRangeIndex(通常は名前が付いていない)と共に保存されたために発生する可能性があります。修正は実際にはDataFrameを保存するときに行う必要がありますが、これは常にオプションとは限りません。
問題の回避:read_csvとindex_col  引数
IMO、最も簡単な解決策は、名前のない列をインデックスとして読み取ることです。にindex_col=[0]引数を指定するpd.read_csvと、最初の列がインデックスとして読み込まれます。  
df = pd.DataFrame('x', index=range(5), columns=list('abc'))
df
   a  b  c
0  x  x  x
1  x  x  x
2  x  x  x
3  x  x  x
4  x  x  x
# Save DataFrame to CSV.
df.to_csv('file.csv')
pd.read_csv('file.csv')
   Unnamed: 0  a  b  c
0           0  x  x  x
1           1  x  x  x
2           2  x  x  x
3           3  x  x  x
4           4  x  x  x
# Now try this again, with the extra argument.
pd.read_csv('file.csv', index_col=[0])
   a  b  c
0  x  x  x
1  x  x  x
2  x  x  x
3  x  x  x
4  x  x  x
  注 DataFrameに開始するインデックスがない場合は、出力CSVの作成時にを
  使用index=Falseすることで、これを最初に回避できた可能性があります。
df.to_csv('file.csv', index=False)
  
  しかし、上記のように、これは常にオプションであるとは限りません。
Stopgap Solution:フィルタリング str.match
CSVファイルを読み書きするようにコードを変更できない場合は、次のようにフィルタリングして列を削除できますstr.match。
df 
   Unnamed: 0  a  b  c
0           0  x  x  x
1           1  x  x  x
2           2  x  x  x
3           3  x  x  x
4           4  x  x  x
df.columns
# Index(['Unnamed: 0', 'a', 'b', 'c'], dtype='object')
df.columns.str.match('Unnamed')
# array([ True, False, False, False])
df.loc[:, ~df.columns.str.match('Unnamed')]
   a  b  c
0  x  x  x
1  x  x  x
2  x  x  x
3  x  x  x
4  x  x  x