我有一个数据框
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
答案 0 :(得分:0)
你的想法是正确的。
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
答案 1 :(得分:0)
正如@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)
答案 2 :(得分:0)
一种简单的实现方法是使用unname()
和as.matrix()
,即
mat <- unname(as.matrix(df))
如此
> mat
[,1] [,2]
[1,] 0.615631233 0.000141725
[2,] 0.531160937 0.288548459
[3,] 0.001130792 0.751136141
答案 3 :(得分:-1)
如果您使用更高效的数字结构(即Numpy数组),请使用pd.as_matrix()
,这将返回Numpy数组:
def solution(a, b):
n = a % b
if n == 0:
return 0
mem = []
n *= 10
while True:
n = n % b
if n == 0:
return 0
if n in mem:
i = mem.index(n)
return len(mem[i:])
else:
mem.append(n)
n *= 10