【发布时间】:2018-12-12 15:35:45
【问题描述】:
我有一个超过 100k 行的数据,我需要有效地将其从左侧 DataFrame 重新组合到多索引右侧,其中索引按第三列中的值总和排序,每个索引内的第二列值排序为第 3 列中的值。所有排序都是降序的。
我不知道如何正确地做到这一点,并且已经花了一整天的时间弄清楚了。
a b c a sum b c %
foo one 1 foo 5 one 3 3/5
foo two 2 two 2 2/5
bar one 1 => baz 4 two 3 3/4
baz one 1 one 1 1/4
baz two 3 bar 3 six 2 2/3
foo one 2 one 1 1/3
bar six 2
更新: @jezrael 给出的代码效果很好,但它以这种方式输出:
%
a sum b c
foo 5 one 3 0.60
two 2 0.40
six NaN NaN
baz 4 two 3 0.75
one 1 0.25
six NaN NaN
bar 1 one 1 1.00
two NaN NaN
six NaN NaN
是否可以用 NaN 去掉这些字符串?
更新 #2: 我发现了导致 NaN 问题的问题。这是由 'category' 数据类型引起的。我不知道它如何影响代码的行为。只是指出原因。
【问题讨论】:
标签: python pandas sorting indexing