【问题标题】:Pivot by count of values in multiple columns pandas按多列熊猫中的值计数进行透视
【发布时间】:2020-09-24 16:30:08
【问题描述】:

我有一个数据框,其中多个列的值分别为 0、1 或 5。我希望能够对表进行透视,以便列是 0、1 和 5,行是原始列名,值是每次 0、1 或 5 出现在原始列中的计数。

原表:

col1 col2 col3 col4
0    1    0    5
1    1    0    1
1    0    1    1

所需的表:

      0   1   5
col1  1   2   0
col2  1   2   0
col3  2   1   0
col4  0   2   1

在 Python 中执行此操作的最佳方法是什么?

【问题讨论】:

  • 到目前为止你有什么尝试?

标签: python pandas count pivot-table


【解决方案1】:

你可以试试Series.value_counts:

df.apply(pd.Series.value_counts).fillna(0).astype(int).T

      0  1  5
col1  1  2  0
col2  1  2  0
col3  2  1  0
col4  0  2  1

【讨论】:

  • 谢谢!这完全符合需要。请问.T是干什么用的?
  • @RalphDelNegro .T 用于获取数据帧的transpose
【解决方案2】:

一种方法是使用df.melt,然后使用crosstab

u = df.melt()
out = pd.crosstab(u['variable'],u['value']).rename_axis(index=None,columns=None)

print(out)

      0  1  5
col1  1  2  0
col2  1  2  0
col3  2  1  0
col4  0  2  1

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2023-03-09
    • 2017-06-18
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多