我想删除列名(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
有可能吗? 我怎么能这样做?
答案 0 :(得分:12)
默认情况下,在pandas中需要列名。
但如果真的想要'remove'
列强烈不推荐,那么可以获得重复的列名称来分配空字符串:
df.columns = [''] * len(df.columns)
但是,如果需要将df
写入没有列的文件,并将索引添加参数header=False
和index=False
添加到to_csv
或to_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