如何从数据框中删除列和行标签?

如何从数据框中删除列和行标签?

问题描述:

我有一个数据帧如何从数据框中删除列和行标签?

      Dim 1  Dim 2 
Low Acceleration 0.615631233 0.000141725 
Medium Acceleration 0.531160937 0.288548459 
High Acceleration 0.001130792 0.751136141 

我想删除这两个列标签和行标签,我怎样才能做到这一点?我尝试使用rownames(abc) <- c()abc <- abc[,-1],其中abc是我的数据帧。

我需要的是这样的

0.615631233 0.000141725 
    0.531160937 0.288548459 
    0.001130792 0.751136141 
+4

为什么要删除行/列的名字呢?如果你不想要它们,那么为什么不不使用它们呢? –

+0

我必须在给定的数据集上应用MCA,然后我想提取从结果中获得的坐标值以供进一步应用。所以我需要删除列名称,只需要维度值作为协调系统。 (Dim1,Dim 2) –

+1

我猜你需要通过'dput()'给我们提供示例数据,以及代码行和列名称的阻碍,否则我们不会理解你的问题 – vaettchen

如果你是一个更有效的数值结构(即numpy的阵列),使用pd.as_matrix(),这将返回数组的数组numpy的经过:

In [1]: import pandas as pd; import numpy as np 

In [2]: df = pd.DataFrame(np.random.randn(4,2),columns=['A','B'],index=['p','q','r','s']) 

In [3]: print(df) 
      A   B 
p -1.284468 -0.264533 
q -0.347832 0.026523 
r -0.349578 0.681883 
s 0.004477 -0.738606 

In [4]: df.as_matrix() 
Out[4]: 
array([[-1.28446781, -0.26453299], 
     [-0.34783207, 0.02652279], 
     [-0.34957842, 0.68188282], 
     [ 0.00447653, -0.73860575]]) 

In [5]: print(type(df.as_matrix())) 
<class 'numpy.ndarray'> 
+0

:: facepalm ::没关系,你的问题是关于R,而不是熊猫。 – charlesreid1

你以为是对的。 rownames(abc) <- c() colnames(abc)<- c()将工作

df<- data.frame(col=c(1.34,3.45,2,56), row.names = c("a","b","c","d")) 
df 
    col 
a 1.34 
b 3.45 
c 2.00 
d 56.00 

rownames(df)<- c() 
colnames(df)<- c() 
df 

1 1.34 
2 3.45 
3 2.00 
4 56.00 
+0

可能转换为矩阵会更好。 data.frames没有列名称,或与重复的列名是不适宜的。此外,删除行名的规范方法是'row.names(df) lmo

正如@imo指出,这是更好地转换您dataframe为基质,如果你打算通过索引引用的列和行,尤其是当它的所有数字。你可以这样做:

mat = as.matrix(df) 
dimnames(mat) = NULL 

结果:

> mat 
      [,1]  [,2] 
[1,] 0.615631233 0.000141725 
[2,] 0.531160937 0.288548459 
[3,] 0.001130792 0.751136141 

数据:

df = read.table(text = "rownames Dim1 Dim2 
       LowAcceleration 0.615631233 0.000141725 
       MediumAcceleration 0.531160937 0.288548459 
       HighAcceleration 0.001130792 0.751136141", header = TRUE, row.names = 1)