7

Как избежать создания индекса при сохранении DataFrame в CSV с помощью pandas

2

Я пытаюсь сохранить 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 ответ(ов)

11

Чтобы избежать записи индексов в файл CSV при использовании pandas, вы можете воспользоваться параметром index=False. Вот пример кода:

df.to_csv('your.csv', index=False)

Эта строка кода сохранит ваш DataFrame в файл your.csv, при этом индексы не будут включены в выходной файл.

1

Есть два способа решить ситуацию, когда мы не хотим, чтобы индекс сохранялся в CSV файле.

  1. Как уже упоминали другие, вы можете использовать параметр index=False при сохранении вашего датафрейма в CSV файл.

    df.to_csv('file_name.csv', index=False)
    
  2. Либо вы можете сохранить ваш датафрейм вместе с индексом, а при чтении просто удалить столбец unnamed 0, содержащий предыдущий индекс. Простой подход!

    df.to_csv('file_name.csv')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'], axis=1)
    
1

Если вы хотите прочитать файл без индекса, используйте следующий код:

import pandas as pd
df = pd.read_csv('file.csv', index_col=0)

А для сохранения файла без индекса выполните:

df.to_csv('file.csv', index=False)

Таким образом, вы сможете загрузить данные без индекса и сохранить их снова без включения индекса в файл.

0

Как уже упоминалось другими участниками, если вы не хотите сохранять колонку индекса изначально, вы можете использовать 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')
0

Если вы хотите сохранить этот столбец в качестве индекса, вы можете использовать следующий подход:

pd.read_csv('filename.csv', index_col='Unnamed: 0')

Этот код позволит вам загрузить CSV-файл, при этом указанный столбец 'Unnamed: 0' будет использоваться в качестве индекса DataFrame.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь