我遇到一种情况,有时当我从csv中读取df时,会得到一个不需要的类似索引的列,名为unnamed:0
file.csv

,A,B,C
0,1,2,3
1,4,5,6
2,7,8,9

CSV读取与此:
pd.read_csv('file.csv')

   Unnamed: 0  A  B  C
0           0  1  2  3
1           1  4  5  6
2           2  7  8  9

这很烦人!有谁知道如何摆脱这一点?

最佳答案

它是索引列,首先传递pd.to_csv(..., index=False)以便不写出未命名的索引列,请参阅 to_csv() docs
例子:

In [37]:
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
pd.read_csv(io.StringIO(df.to_csv()))

Out[37]:
   Unnamed: 0         a         b         c
0           0  0.109066 -1.112704 -0.545209
1           1  0.447114  1.525341  0.317252
2           2  0.507495  0.137863  0.886283
3           3  1.452867  1.888363  1.168101
4           4  0.901371 -0.704805  0.088335
与之比较:
In [38]:
pd.read_csv(io.StringIO(df.to_csv(index=False)))

Out[38]:
          a         b         c
0  0.109066 -1.112704 -0.545209
1  0.447114  1.525341  0.317252
2  0.507495  0.137863  0.886283
3  1.452867  1.888363  1.168101
4  0.901371 -0.704805  0.088335
您还可以通过传递read_csv来告诉index_col=0第一列是索引列:
In [40]:
pd.read_csv(io.StringIO(df.to_csv()), index_col=0)

Out[40]:
          a         b         c
0  0.109066 -1.112704 -0.545209
1  0.447114  1.525341  0.317252
2  0.507495  0.137863  0.886283
3  1.452867  1.888363  1.168101
4  0.901371 -0.704805  0.088335

关于python - 如何摆脱pandas DataFrame中的 “Unnamed: 0”列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36519086/

10-09 05:31