如何在Datafram的所有值中计算值

2024-04-30 05:56:33 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我得到如下数据帧:

df

     col1 col2 col3
row1 1    2    3    
row2 1    0    0    
row3 1    0    0    

do_value_counts(df)
   value_count
0  4
1  3
2  1
3  1

我尝试将dataframe重塑为(n,1),但这对Pandas来说并不容易,因此我尝试用它初始化numpy数组并将其重塑为(n,1)。
然后我用np.bincount()来做pd.value_counts()之类的事情。
但是当我尝试在上面使用np.bincount时,我得到了(31280,1)形状的numpy数组和object too deep for desired array
所以我想知道是否有更好的方法来实现它?
如果不介意的话,有人能帮我吗?
提前感谢。


Tags: 数据numpydfvaluenp数组col2col3
2条回答

使用这个,也许它能解决你需要的问题。你知道吗

item, count = np.unique(np.array(df).flatten(), return_counts=True)
pd.DataFrame(count, index=item, columns=['value_counts'])
value_counts
0   4
1   3
2   1
3   1

尝试在以下时间之前融化数据帧:

df.melt().value.value_counts()
# 0     4
# 1     3
# 2     1
# 3     1

一个简单的方法是:


unique, counts = np.unique(df.values.ravel(), return_counts=True)
counts_df = pd.DataFrame({"counts":counts}, index=unique) 
#    counts
# 0     4
# 1     3
# 2     1
# 3     1

相关问题 更多 >