python - 旋转子数据框

标签 python pandas

假设我们有一个类似于以下 6 列的数据框

C1 C2 C3   A  B  C
 x  y  z  10  5  1
 r  s  t   0  0  0 
 u  v  z   1  0  0 

我希望将其转换以获得以下结果:

C1 C2 C3  P   V 
 x  y  z  A  10 
 x  y  z  B   5
 x  y  z  C   1
 u  v  z  A   1

我认为可以通过旋转数据框来获得这个结果,但我很难实现这一点。如何使用 pivot_tablepivot 来完成此转换?

最佳答案

使用melt + query

pd.melt(df, 'C1 C2 C3'.split(), list('ABC'), 'P', 'V').query('V != 0')

  C1 C2 C3  P   V
0  x  y  z  A  10
2  u  v  z  A   1
3  x  y  z  B   5
6  x  y  z  C   1

关于python - 旋转子数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884440/

相关文章:

python - sunburnt - 如何查看生成的查询 URL

python - Flask 应用程序不在 heroku 服务器上启动

javascript - Flask with AJAX - 更新 HTML 表

python - 用其他数据框的值有效地替换 Pandas 数据框

pandas - 如何找到 Pandas 时间序列的周期性(如果存在)?

python - 在 Pandas 中使用 data.info() 显示所有信息

python - 如何将辅助Python文件上传到谷歌云平台?

python - Django Media url 返回 404 NOT FOUND

python - 如何从pandas数据框中删除带括号的特殊字符

python - 使用严格的填充限制填充 pandas 数据框