Попробуйте:
pd.DataFrame(np.sort(df.values, axis=1), index=df.index, columns=df.columns)
Вывод:
S1 S2 S3 S4 S5
0 1713 203145 203458 1627752 1629027
1 1713 45222 203145 1627752 1629027
2 1713 203145 203458 1627752 1629027
3 45222 203145 203458 1627752 1629027
4 1713 45222 203145 1627752 1629027
"В то же время обычный неадминистраторский пользователь должен смочь сделать удаление".
Неадминистраторская учетная запись никогда не должна (и никогда не должен мочь к), изменяют данные других пользователей.
Абсолют, который большинство, которое Вы могли сделать в этом случае, удаляет данные текущего пользователя, и даже затем необходимо запросить или дать предупреждение.
Пойдите с Raymond, это может просто быть сообщение в блоге, но Raymond нельзя было считать никаким обычным блоггером :)
Править: Я только что нашел http://msdn.microsoft.com/en-us/library/bb204770.aspx#uninstall_clean, но это не говорит ничего явного о пользовательских данных
Удаления должны удалить все клиентские данные, кроме тех случаев, когда клиент не хочет это к :)
Или, поместите его иначе, универсальный деинсталлятор должен дать пользователю выбор того, удалить ли данные или нет.
В Вашем случае, где у Вас есть клиент, который конкретно хочет удаленные данные, я предполагаю, что это - то, что Вы оказываетесь перед необходимостью делать, но нет никакого очевидного способа выполнения что, если удаление будет выполненным неадминистратором, если Вы не делаете, как Вы предполагаете и храните данные где-нибудь, где у каждого пользователя есть полный доступ к файловой системе.
Удаление всех данных в расчете на пользователя должно быть отдельным процессом к удалению.
Моя рекомендация (и что мы делаем) состояла бы в том, чтобы создать отдельную утилиту "очистки", которая должна быть выполнена как администратор и перечислит через профили, удаляющие дополнительные пользовательские файлы. Дополнительно это могло также перечислить пользовательские структуры данных реестра и удаление дополнительных ключей реестра и т.д. У одного из наших клиентов есть их собственные сценарии, который делает точно это.
Я затем предоставил бы клиенту этот инструмент очистки и сказал бы после удаления, если Вы хотите удалить все пользовательские данные затем, используют это.
Рассмотрите следующие случаи
Самый чистый способ удалить эти данные для всех пользователей, о которых я могу думать, состоял бы в том, чтобы использовать в своих интересах Активную Установку и использовать это для инициирования сценария в расчете на пользователя, который работает в следующий раз, когда каждый пользователь входит в систему. Данные не будут удалены во время удаления, но при следующем входе в систему. И Вы оставите несколько лжи ключей реестра, однако она, менее вероятно, вызвала бы повреждение, чем перечисление профилей пользователей.
Я не знаю для специфик Windows, но как пользователь я хотел бы те свои данные, не теряются, если я удаляю программное обеспечение. Некоторые аргументы:
Я никогда не удалял бы пользователя и/или данные конфигурации при удалении. Если пользователь действительно хочет все это, которое уводят, она должна сделать это сама.