Pandas - 删除列名

时间:2017-07-05 05:31:04

标签: python pandas

我想删除列名(x,y,z) 仅使用数据

In [68]: df
Out[68]: 
   x  y  z
0  1  0  1  
1  2  0  0 
2  2  1  1 
3  2  0  1 
4  2  1  0

我想打印结果与下面相同。

Out[68]: 

0  1  0  1  
1  2  0  0 
2  2  1  1 
3  2  0  1 
4  2  1  0

有可能吗? 我怎么能这样做?

5 个答案:

答案 0 :(得分:12)

默认情况下,在pandas中需要列名。

但如果真的想要'remove'列强烈不推荐,那么可以获得重复的列名称来分配空字符串:

df.columns = [''] * len(df.columns)

但是,如果需要将df写入没有列的文件,并将索引添加参数header=Falseindex=False添加到to_csvto_excel

df.to_csv('file.csv', header=False, index=False)

df.to_excel('file.xlsx', header=False, index=False)

答案 1 :(得分:6)

如果你只需打印没有标题,那么你可以使用to_string()并设置header=False,例如:

>>> print(df.to_string(header=False))
0  1  0  1
1  2  0  0
2  2  1  1
3  2  0  1
4  2  1  0

答案 2 :(得分:3)

如果您只需要删除标题,则使用'.values'。

df = df[:].values

但是上面的代码将返回一个numpy数组而不是dataframe。再次将其转换为数据帧会将默认值添加到列名(0,1 ..)。

答案 3 :(得分:2)

首先找到列数,

df.shape # 它可以帮助您了解您拥有的总列数(以及行数)

假设形状是 (188,8) #这里我们有 8 列

df.columns = np.arange(8)

这使得列从 0 到 7 为 int64 。

答案 4 :(得分:1)

你可以使用这个:

df.name = None