例如,我得到一个dataframe如下:
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
我尝试将数据帧 reshape 为 (n,1),但这对 Pandas 来说并不容易,因此我尝试用它初始化一个 numpy 数组并将其 reshape 为 (n, 1)。
然后我使用 np.bincount()
来执行类似 pd.value_counts()
的操作。
但是当我尝试在其上使用 np.bincount
时,我得到 (31280, 1) shape numpy array 和 object too deep for desired array
。
所以我想知道有没有更好的实现方式?
如果不介意谁能帮助我?
提前致谢。
最佳答案
尝试在之前融化数据框:
df.melt().value.value_counts()
# 0 4
# 1 3
# 2 1
# 3 1
一个 numpy 的方式是:
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
关于python - 如何对 Pandas Dataframe 中的所有值进行 value_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57219521/