python - 在 Pandas 中跨多个数据帧进行操作时保留行顺序

标签 python pandas

我正在 Pandas 中生成大量相关数据帧。它们都具有相同的形状和格式。所以这是数据框 A:-

             free_memory       memory_in_use     active_memory
free_memory     1               0.190912742      0.375301656
memory_in_use   0.190912742     1                0.962653384
active_memory   0.375301656     0.962653384      1

这是数据框 B:-

                free_memory         memory_in_use   active_memory
free_memory     1                   0.673434243     0.712713697
memory_in_use   0.673434243         1               0.991687459
active_memory   0.712713697         0.991687459     1

当我得到一个数据帧 C ,使其所有单元格都是 A 和 B 中相应单元格的平均值时,Pandas 会混合行的顺序。例如,结果 C 如下所示:-

                  free memory  memory in use  active memory
active memory     0.296996       0.960049       1.000000
free memory       1.000000       0.520667       0.296996
memory in use     0.520667       1.000000       0.960049

如您所见,列顺序被保留,但行顺序被提高,并且我没有得到漂亮的对角线 1。如何保持输入数据帧中的顺序相同?执行此操作的相关代码是:-

df_concat.groupby(df_concat.index).mean()

最佳答案

您可以向函数 groupby 添加参数 sort=False :

print df_concat.groupby(df_concat.index, sort=False).mean()
               free_memory  memory_in_use  active_memory
free_memory       1.000000       0.190913       0.375302
memory_in_use     0.190913       1.000000       0.962653
active_memory     0.375302       0.962653       1.000000

Docs :

sort : boolean, default True

Sort group keys. Get better performance by turning this off. Note this does not influence the order of observations within each group. groupby preserves the order of rows within each group.

关于python - 在 Pandas 中跨多个数据帧进行操作时保留行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511350/

相关文章:

python - 使用 pandas 将字符串对象转换为 int/float

python - 如何在不使用 matplotlib 的情况下使用不同类型的图(条形图和线条图)绘制不同的列(仅使用 pandas)

python - binstar 上的持续集成示例

python - 我们如何检测 pandas 数据帧中的不一致?

python - 如何跟踪 YOLOv3 产生的输出?

python - jinja2 静态文件 mime 类型总是文本/纯文本

python 多处理挂起,潜在的队列内存错误?

python - 将列字符串转换/解析为日期时间值 - pandas

python - 如何有效地重新排列 Pandas 数据如下?

python - 使用 Pandas 数据框创建一个类(更新)