Как поменять местами строки в фрейме данных Python
Я пробовал все способы, упомянутые в этой теме на сайте, но ничего не работает.
Мне просто нужно поменять местами 2 строки, доступные в файле CSV. упомянутые ниже, я пробовал с этими опциями, но тоже не работает. Просто вставляю больше кода для лучшего понимания . Я беру строки 2 и 3 из Questionnaire.csv и помещаю в файл Questionnaire_edit.csv. теперь После этого мне нужно поменять местами строки в новом файле.
Весь код предложения, например df1 = df1.loc [[2,1]] или повторное индексирование, работает только тогда, когда CSV имеет строку индекса, как показано ниже.
Код работает, если CSV имеет этот формат введите здесь описание изображения
2 ответа
Просто используйте loc и соответствующий индекс строк, которые вы хотите поменять местами.
Есть ли способ поменять местами две строки текста в текстовом файле с помощью Python?
Я пытаюсь написать скрипт на Python, который будет принимать файл (назовем его input.txt ) и найдите строку, заканчивающуюся текстом «перейти к первой точке периметра». Затем ему необходимо заменить эту строку следующей строкой и заменить строку, следующую за ней, первой строкой. Остальная часть файла должна быть без изменений. Есть масса случаев, когда это должно происходить в файле.
Мой мыслительный процесс был таким. Найдите линию, которая заканчивается словами «перейти к первой точке периметра». Как только код найдет его, он сохранит строку как переменную, а затем удалит строку из файла. Затем, если следующая строка заканчивается словом «восстановить слой Z» (что всегда будет иметь место в следующей строке), необходимо добавить ранее удаленную строку после этой строки.
- Откройте файл ( ‘input.txt’ ).
- Поменять местами каждое вхождение двух последовательных строк, где,
- Первая строка заканчивается: ‘move to first perimeter point’
- Вторая строка заканчивается: ‘restore layer Z’
- Примечание. Известно, что все такие события всегда будут происходить парами (первая-вторая строки размещаются последовательно).
- Запишите это изменение в новый файл ( ‘output.txt’ ).
Я попытался собрать это вместе с помощью Python. Я играл с python много лет назад и смутно помню, как им пользоваться. Это вызвало ошибку. Вот мой код после внесения исправлений, предложенных в разделе комментариев: (а) str.endwith —> str.endswith , (б) For —> for . Любые предложения будут очень полезны и оценены.
Я ожидал, что входной файл останется без изменений, а новый выходной файл будет создан. Вместо этого ничего не произошло.
Как поменять местами столбец и строку во вложенном списке python?
Пытаюсь написать свою версию 2048, но столкнулся с проблемой. Пытаюсь написать движение чисел вверх, для этого мне нужно отсортировать список по горизонтали так, чтобы слева стояли двойки, а дальше шли нули и поменять местами столбцы и строки, чтобы всё заработало. Перепробовал множество вариантов решения проблемы, но никак не могу решить её.
- Вопрос задан более двух лет назад
- 1143 просмотра
Средний 1 комментарий
- Вконтакте

Я не совсем понял, тебе нужно транспонировать матрицу или повернуть?
Вообще, у тебя в коде есть грубая ошибка — не надо переопределять имя list — это вообще-то тип данных «список», имена типов данных без крайней необходимости не надо переопределять. Назови эту сущность my_list, в конце концов.
Поменять местами строки и столбцы двумерного массива типа списка Python
Бизнес
Стандартный тип списка Python может представлять двумерный массив списком списков.
В этом разделе объясняется, как поменять местами строки и столбцы двумерного массива.
-
- Преобразование в массив NumPy
- .T Транспонируйте с помощью этого.
-
- pandas.DataFrame Преобразуйте в это
- .T Транспонируйте с помощью этого.
- Транспонирование с помощью встроенной функции zip()
Проще использовать NumPy или pandas, но если вы не хотите импортировать NumPy или pandas только для транспонирования, вы можете использовать функцию zip() для транспонирования.
Исходный двумерный массив определяется следующим образом
Преобразован в массив NumPy ndarray и транспонирован с помощью .T
Сгенерируйте массив NumPy ndarray из исходного двумерного массива и получите транспонированный объект с атрибутом .T.
Если вы хотите получить в итоге объект типа списка Python, преобразуйте его в список с помощью метода tolist().
В дополнение к атрибуту .T можно также использовать метод ndarray transpose() и функцию numpy.transpose().
Преобразован в pandas.DataFrame и транспонирован с помощью .T
Сгенерируйте pandas.DataFrame из исходного двумерного массива и получите транспонированный объект с атрибутом .T.
Если вы хотите получить в итоге объект типа списка Python, получите numpy.ndarray с атрибутом values, а затем преобразуйте его в список с помощью метода tolist().
Транспонирование с помощью встроенной функции zip()
Транспонирует двумерный массив с помощью встроенной функции zip().
zip() — это функция, возвращающая итератор, который суммирует элементы нескольких итераторов (списков, кортежей и т.д.). Она используется, например, при выполнении нескольких списков в цикле for.
- СООТВЕТСТВУЮЩИЕ:Использование функции zip в Python: Объединение элементов нескольких списков
Кроме того, функция использует механизм, с помощью которого список может быть расширен и передан, если аргумент функции помечен звездочкой.
- СООТВЕТСТВУЮЩИЕ:Расширение и передача списков, кортежей и словарей в качестве аргументов функций в Python
Транспозиции могут быть сделаны следующим образом.
В таком виде элементы внутри являются кортежами. Поэтому, если вы хотите сделать его списком, используйте list(), который преобразует кортеж в список в нотации list comprehension.
- СООТВЕТСТВУЮЩИЕ:Как использовать понимание списков в Python
- СООТВЕТСТВУЮЩИЕ:Преобразование списков и кортежей друг в друга в Python: list(), tuple()
Ниже приводится пошаговое описание этого процесса.
Элементы списка расширяются с помощью звездочки, расширенные элементы группируются с помощью функции zip(), а затем кортеж преобразуется в список с помощью нотации list comprehension.