减少python中的数据帧行

时间:2018-05-03 00:42:43

标签: python dataframe scikit-learn pca

我的数据帧为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循环来处理这个问题,请帮忙

1 个答案:

答案 0 :(得分:1)

除非我误解了您的问题,否则我认为您通过简单的数据框操作将PCA(维度降低)的目的混淆为减少行数即可。这些是非常不同的东西:

您可以通过PCA获得的

维度降低会修改数据框的值(这就是要点),这是创建/提取新功能的一种有用但不是非常简单的方法从您的数据进行分析,可视化高维数据等。查看pcadimensionality 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