如何将不同列中的value_count()值一起打印?

时间:2019-04-13 17:50:48

标签: python-3.x pandas

我有一个包含不同列的数据集。我已应用2!=0来打印唯一值的计数。 我对6个不同的列应用了相同的操作,如下所示:

value_counts()

我想知道是否有一种方法可以将所有不同的列(性别,幸存者等)全部合并为一行代码,而不是如上所述的6条不同的行。

谢谢

3 个答案:

答案 0 :(得分:3)

您可以使用for loop

for col in complete_data:
    print(complete_data[col].value_counts(), '\n')

答案 1 :(得分:3)

df[['Sex', 'Survived', 'Parch', 'Pclass', 'Sibsp', 'Embarked']].apply(pd.value_counts)

这将为您返回一个df,其中包含每个值的计数。

答案 2 :(得分:1)

假定源DataFrame如下:

try (var stream = getClass().getResourceAsStream(filePath)) {
  var bytes = stream.readAllBytes();

  log.info(bytes.length + " bytes or " + bytes.length / 1024 + "kb");
}

然后,要为所有列计算df = pd.DataFrame(data=[[5, 5, 2, 1], [0, 2, 6, 7], [6, 1, 4, 6], [7, 0, 7, 3], [0, 3, 1, 2], [1, 5, 6, 0]], columns=list('ABCD')) ,您可以应用 value_counts到DataFrame,实际上是所有列:

value_counts

对于我的源数据,结果是:

df.apply(pd.Series.value_counts).fillna(0, downcast='infer')

A B C D 0 2 1 0 1 1 1 1 1 1 2 0 1 1 1 3 0 1 0 1 4 0 0 1 0 5 1 2 0 0 6 1 0 2 1 7 1 0 1 1 列包含2个 0 ,1个 1 5 6 和< em> 7 , 对于其他列也是如此。