Как избежать создания индекса при сохранении DataFrame в CSV с помощью pandas
Я пытаюсь сохранить CSV файл в папку после внесения в него некоторых изменений.
Каждый раз, когда я использую команду pd.to_csv('C:/Путь к файлу.csv')
, в результирующем CSV файле появляется отдельный столбец с индексами. Я хочу избежать записи индексов в CSV.
Я попробовал:
pd.read_csv('C:/Путь к файлу для редактирования.csv', index_col=False)
А затем, чтобы сохранить файл...
pd.to_csv('C:/Путь для сохранения отредактированного файла.csv', index_col=False)
Тем не менее, я все равно получаю ненужный столбец индексов. Как я могу этого избежать при сохранении своих файлов?
5 ответ(ов)
Чтобы избежать записи индексов в файл CSV при использовании pandas
, вы можете воспользоваться параметром index=False
. Вот пример кода:
df.to_csv('your.csv', index=False)
Эта строка кода сохранит ваш DataFrame в файл your.csv
, при этом индексы не будут включены в выходной файл.
Есть два способа решить ситуацию, когда мы не хотим, чтобы индекс сохранялся в CSV файле.
Как уже упоминали другие, вы можете использовать параметр index=False при сохранении вашего датафрейма в CSV файл.
df.to_csv('file_name.csv', index=False)
Либо вы можете сохранить ваш датафрейм вместе с индексом, а при чтении просто удалить столбец unnamed 0, содержащий предыдущий индекс. Простой подход!
df.to_csv('file_name.csv') df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'], axis=1)
Если вы хотите прочитать файл без индекса, используйте следующий код:
import pandas as pd
df = pd.read_csv('file.csv', index_col=0)
А для сохранения файла без индекса выполните:
df.to_csv('file.csv', index=False)
Таким образом, вы сможете загрузить данные без индекса и сохранить их снова без включения индекса в файл.
Как уже упоминалось другими участниками, если вы не хотите сохранять колонку индекса изначально, вы можете использовать df.to_csv('processed.csv', index=False)
.
Тем не менее, поскольку данные, с которыми вы обычно работаете, зачастую имеют какой-то собственный индекс, скажем, колонку 'timestamp', я бы рекомендовал сохранить индекс и загружать данные, используя его.
Таким образом, чтобы сохранить данные с индексом, сначала установите индекс, а затем сохраните DataFrame:
df.set_index('timestamp')
df.to_csv('processed.csv')
После этого вы можете либо считать данные с индексом:
pd.read_csv('processed.csv', index_col='timestamp')
либо сначала прочитать данные, а затем установить индекс:
pd.read_csv('filename.csv')
df.set_index('column_name')
Если вы хотите сохранить этот столбец в качестве индекса, вы можете использовать следующий подход:
pd.read_csv('filename.csv', index_col='Unnamed: 0')
Этот код позволит вам загрузить CSV-файл, при этом указанный столбец 'Unnamed: 0' будет использоваться в качестве индекса DataFrame.
Как изменить порядок столбцов в DataFrame?
Как удалить строки DataFrame в Pandas с NaN в определённом столбце
Выбор нескольких колонок в DataFrame Pandas
Запись DataFrame pandas в CSV файл
Как получить значение из ячейки датафрейма?