我有一个包含不同列的数据集。我已应用2!=0
来打印唯一值的计数。
我对6个不同的列应用了相同的操作,如下所示:
value_counts()
我想知道是否有一种方法可以将所有不同的列(性别,幸存者等)全部合并为一行代码,而不是如上所述的6条不同的行。
谢谢
答案 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 ,
对于其他列也是如此。