Вы можете использовать pd.melt
, чтобы получить большую часть пути, а затем сортировать:
>>> df
location name Jan-2010 Feb-2010 March-2010
0 A test 12 20 30
1 B foo 18 20 25
>>> df2 = pd.melt(df, id_vars=["location", "name"],
var_name="Date", value_name="Value")
>>> df2
location name Date Value
0 A test Jan-2010 12
1 B foo Jan-2010 18
2 A test Feb-2010 20
3 B foo Feb-2010 20
4 A test March-2010 30
5 B foo March-2010 25
>>> df2 = df2.sort(["location", "name"])
>>> df2
location name Date Value
0 A test Jan-2010 12
2 A test Feb-2010 20
4 A test March-2010 30
1 B foo Jan-2010 18
3 B foo Feb-2010 20
5 B foo March-2010 25
(Возможно, вы захотите выбросить .reset_index(drop=True)
, просто
Примечание: pd.DataFrame.sort
устарел в пользу pd.DataFrame.sort_values
.
Вызывать триггер click
каждый раз, когда окно имеет фокус, что-то вроде этого (чтобы проверить это, просто нажмите за пределами фрагмента и снова на контейнер фрагмента).
P.S .: также вы можете попробовать сыграть с document.hasFocus()
$(document).ready(function(){
var window_focus;
$(window).focus(function() {
window_focus = true;
$('button').trigger("click");
}).blur(function() {
window_focus = false;
});
$('button').click(function() {
// call ajax here:
$('body').append('has focus<br/>');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click here to begin<br>
<button>
sdf
</button>