python - Pandas 旋转数据框,重复行

标签 python pivot pivot-table pandas

<分区>

我在 pandas 中旋转时遇到了一些麻烦。我正在处理的 dataframe(日期、位置、数据)如下所示:

dates    location    data
date1       A         X
date2       A         Y
date3       A         Z
date1       B         XX
date2       B         YY

基本上,我试图以位置为中心以最终得到如下数据框:

dates   A    B    C
date1   X    XX   etc...
date2   Y    YY
date3   Z    ZZ 

不幸的是,当我旋转时,索引(相当于原始日期列)没有改变,我得到:

dates  A   B   C
date1  X   NA  etc...
date2  Y   NA
date3  Z   NA
date1  NA  XX
date2  NA  YY

有谁知道我该如何解决这个问题以获得我正在寻找的数据框格式?

我目前这样调用 Pivot:

df.pivot(index="dates", columns="location")

因为我有 # 的数据列我想旋转(不想将每个列都列为参数)。我相信默认情况下 pivot 会枢转数据框中的其余列。 谢谢。

最佳答案

如果您有多个数据列,调用不带值列的 pivot 应该会为您提供一个以 MultiIndex 作为列的旋转框架:

In [3]: df
Out[3]: 
  columns     data1     data2 index
0       a -0.602398 -0.982524     x
1       a  0.880927  0.818551     y
2       b -0.238849  0.766986     z
3       b -1.304346  0.955031     x
4       c -0.094820  0.746046     y
5       c -0.835785  1.123243     z

In [4]: df.pivot('index', 'columns')
Out[4]: 
            data1                         data2                    
columns         a         b         c         a         b         c
index                                                              
x       -0.602398 -1.304346       NaN -0.982524  0.955031       NaN
y        0.880927       NaN -0.094820  0.818551       NaN  0.746046
z             NaN -0.238849 -0.835785       NaN  0.766986  1.123243

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

相关文章:

python - 只计算一次python变量

sql - 如何在 SQL 中不使用 PIVOT 函数进行透视?

MySQL 将多行转入新列

sql - 使用动态列构建 SQL 查询

python - 如何在 pandas 数据透视表中聚合仅超过 1 个的组

python - 使用网络浏览器调用的python脚本运行exe

Python检查目录中具有特定名称的所有文件

python - 无法从 Python 中的子目录导入 *

python - pandas - 包括所有列和行对值

mysql - 在 MySql 中使用自连接到数据透视表