如何从数据框中删除列和行标签?
我有一个数据帧如何从数据框中删除列和行标签?
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
如果你是一个更有效的数值结构(即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'>
:: 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
可能转换为矩阵会更好。 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)
为什么要删除行/列的名字呢?如果你不想要它们,那么为什么不不使用它们呢? –
我必须在给定的数据集上应用MCA,然后我想提取从结果中获得的坐标值以供进一步应用。所以我需要删除列名称,只需要维度值作为协调系统。 (Dim1,Dim 2) –
我猜你需要通过'dput()'给我们提供示例数据,以及代码行和列名称的阻碍,否则我们不会理解你的问题 – vaettchen