如何通过熊猫或spark数据框删除所有行中具有相同值的列?

青色CEVI:

假设我的数据类似于以下内容:

  index id   name  value  value2  value3  data1  val5
    0  345  name1    1      99      23     3      66
    1   12  name2    1      99      23     2      66
    5    2  name6    1      99      23     7      66

我们怎样才能降像所有这些列(valuevalue2value3)所有行具有相同的值,在一个命令或夫妇使用命令的蟒蛇

考虑到我们有类似的许多列valuevalue2value3... value200

输出:

   index id      name   data1
        0  345  name1    3
        1   12  name2    2
        5    2  name6    7
EdChum:

我们可以做的是apply nunique计算df中唯一值的数量,并删除仅具有单个唯一值的列:

In [285]:
nunique = df.apply(pd.Series.nunique)
cols_to_drop = nunique[nunique == 1].index
df.drop(cols_to_drop, axis=1)

Out[285]:
   index   id   name  data1
0      0  345  name1      3
1      1   12  name2      2
2      5    2  name6      7

另一种方法是只diff对数字列进行abs取值和取值sums

In [298]:
cols = df.select_dtypes([np.number]).columns
diff = df[cols].diff().abs().sum()
df.drop(diff[diff== 0].index, axis=1)
​
Out[298]:
   index   id   name  data1
0      0  345  name1      3
1      1   12  name2      2
2      5    2  name6      7

另一种方法是使用具有相同值的列的标准偏差为零的属性:

In [300]:
cols = df.select_dtypes([np.number]).columns
std = df[cols].std()
cols_to_drop = std[std==0].index
df.drop(cols_to_drop, axis=1)

Out[300]:
   index   id   name  data1
0      0  345  name1      3
1      1   12  name2      2
2      5    2  name6      7

实际上,以上内容可以单线完成:

In [306]:
df.drop(df.std()[(df.std() == 0)].index, axis=1)

Out[306]:
   index   id   name  data1
0      0  345  name1      3
1      1   12  name2      2
2      5    2  name6      7

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何保留数据框中所有列中具有相同值的所有行?

熊猫数据框,删除某些列中具有相同值的两行之间的行

如何删除数据框所有列中具有相同元素的行?

熊猫数据框删除具有相同值的数据行

通过熊猫删除两列具有相同值的行

如何基于具有连续相同值的列事件删除数据框中的行

删除熊猫所有列中具有相同值的重复行

如何在熊猫数据框行中附加所有具有相同ID的元素?

删除所有列中具有相同值的行

删除所有列中具有相同值的行

如何通过从具有给定字符串且值小于 X 的列中删除所有行来对数据框进行子集化?

在熊猫中查找具有相同列值的数据框行

如何删除负值的熊猫数据框中的所有行?

如何删除熊猫数据框中具有重复的行?

如何合并、加入在熊猫数据框中具有相同值的行单元格

删除数据框中在多列中具有相同值的行

从pyspark数据框中删除具有相同值但在不同列中的重复行

从熊猫数据框的所有列和行中删除值

从仅某些列具有相同值的Pandas数据框中删除重复的行

使用python在数据框的某些列中删除具有相同值的行

如何从熊猫数据框中删除具有特定属性值的行的分数

如何删除熊猫数据框中具有重复列值的行?

如何在熊猫数据框中完全用零删除所有行和列

如何在熊猫数据框中删除具有重复行元素的列?

如何在熊猫数据框中的列中组合具有不同值的行

获取所有在熊猫中具有相同值的行

如何选择具有特定值的列迭代数据框中的所有行?

如何从数据框中删除具有某些值的行?

Groupby 熊猫数据框具有相同值的两列