2016-04-21 28 views
0

我想读取一个csv文件并将其转换为数据框。这里除了列原始列外,我正在获取正在自动生成的索引列。Python:如何摆脱使用Python 3的数据框中的默认索引

    Col1   Col2   Col3 
    411580  66349   3   0  
    402645  66887   8   1  
    388542  82777   4   1  
    265353  137481   8   1  

我在万卢比巨大的纪录,我做了一个洗牌和这就是为什么该指数是不同的范围。在这里,我需要摆脱这个指数。我试过如下选项:

df = pd.read_csv("File_name", index=0) 

因此第一列可以设置为索引。但是当我在csv文件中将任何现有列设置为索引时,我的数据操作中存在其他一些问题。

我也试过reindex选项。但是这也行不通。当我尝试显示COL3,它是作为下面来:

df.col3: 

       Col3 
    411580  0  
    402645  1  
    388542  1  
    265353  1  

但我想它下面,没有默认索引:

 Col3 
     0  
     1  
     1  
     1  

我已经试过大多数的选项,在其他各种提到职位,但没有任何工作。如果有人帮助我,那将会很棒。

+0

您需要'index_col = None'请参阅文档:http://pandas.pydata.org/pandas-docs/version/0.18.0/generated/pandas.read_csv.html#pandas.read_csv,其实如果您没有通过'index_col'它应该有自动生成一个也不需要'索引'参数。你也试图跳过csv中的索引列或在洗牌后摆脱它?你可以做'df = df.reset_index(drop = True)' – EdChum

+0

你想用较小的数字重置它还是完全摆脱它?我不认为你可以摆脱索引。打印时无法打印,但就是这样。 – piRSquared

+0

我很满意任何一个(洗牌后甚至之前)。即使在重新洗牌之后,我也可以将其删除。我也试过index_col = None和df.reset_index(drop = True)。即使在那之后还有一个索引。我还尝试通过采用Col1,Col2,Col3等特定列来创建新的数据框。即使在那之后,像数字这样的索引也会生成。 –

回答

0

A Series或DataFrame都将有一个索引。如果您只是想要这些值,只需使用.values即可获取numpy数组或df.Col3.tolist()以获取数组。

>>> df.Col3.values 
array([0, 1, 1, 1]) 

>>> df.Col3.tolist() 
[0, 1, 1, 1] 

>>> df.Col3.values.reshape((len(df.Col3), 1)) 
array([[0], 
     [1], 
     [1], 
     [1]]) 

或者它你真的想要一个完全无用的数据帧,而是一个显示你想要的...

>>> pd.DataFrame(['']*len(df), index=df.Col3, columns=['']) 
Col3 
0  
1  
1  
1  

为什么你会希望在无索引数据帧或系列?该问题的答案可能会导致您的问题的实际解决方案。

+0

感谢您的澄清 –