我的数据帧为8000 * 1600,我希望在不更改值的情况下减少行数,我尝试了pca但值已更改 例如:
a 10 20 30 40
b 20 70 40 50
c 10 00 80 40
d 20 30 99 50
e 10 20 30 40
f 59 30 40 50
g 10 20 30 40
h 90 30 40 50
i 91 20 34 18
进入:
a 10 20 30 40
c 10 00 80 40
h 90 30 40 50
i 91 20 34 18
我认为explain_variance_ratio_会用for循环来处理这个问题,请帮忙
答案 0 :(得分:1)
除非我误解了您的问题,否则我认为您通过简单的数据框操作将PCA(维度降低)的目的混淆为减少行数即可。这些是非常不同的东西:
您可以通过PCA获得的维度降低会修改数据框的值(这就是要点),这是创建/提取新功能的一种有用但不是非常简单的方法从您的数据进行分析,可视化高维数据等。查看pca和dimensionality reduction上的维基百科页面,看看它是否确实是您想要的。如果 你想要什么,我建议你重新提出你的问题。
减少行数是完全不同的,在pandas
中非常简单。根据您的示例,您似乎希望从数据框中提取许多随机行而不进行修改。这可以通过以下df.sample()
例如,在您发布的数据中,以下选择了4个随机行:
>>> df.sample(4)
0 1 2 3 4
0 a 10 20 30 40
2 c 10 0 80 40
7 h 90 30 40 50
5 f 59 30 40 50