Pandas: удалить заголовок столбца индекса [дубликат]

Рассмотрим следующую строку:

ab

Образец (ab.*) вернет совпадение для группы захвата с результатом ab

Пока шаблон (ab.+) не будет соответствовать и ничего не возвращать.

Но если вы измените строку на следующую, она вернет aba для шаблона (ab.+)

aba
54
задан Michael Perdue 9 April 2016 в 15:47
поделиться

2 ответа

Это индексный столбец, передать index=False, чтобы не записывать его, см. docs

Пример:

In [37]:
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
pd.read_csv(io.StringIO(df.to_csv()))

Out[37]:
   Unnamed: 0         a         b         c
0           0  0.109066 -1.112704 -0.545209
1           1  0.447114  1.525341  0.317252
2           2  0.507495  0.137863  0.886283
3           3  1.452867  1.888363  1.168101
4           4  0.901371 -0.704805  0.088335

сравнить с:

In [38]:
pd.read_csv(io.StringIO(df.to_csv(index=False)))

Out[38]:
          a         b         c
0  0.109066 -1.112704 -0.545209
1  0.447114  1.525341  0.317252
2  0.507495  0.137863  0.886283
3  1.452867  1.888363  1.168101
4  0.901371 -0.704805  0.088335

Вы также можете указать read_csv, что первый столбец является столбцом индекса, передав index_col=0:

In [40]:
pd.read_csv(io.StringIO(df.to_csv()), index_col=0)

Out[40]:
          a         b         c
0  0.109066 -1.112704 -0.545209
1  0.447114  1.525341  0.317252
2  0.507495  0.137863  0.886283
3  1.452867  1.888363  1.168101
4  0.901371 -0.704805  0.088335
71
ответ дан EdChum 15 August 2018 в 14:55
поделиться
  • 1
    Спасибо EdChum! Раздражение устранено! Думать, что я просто читал документы и искал это решение. Почему-то я не понимал должным образом. – Michael Perdue 9 April 2016 в 15:51
  • 2
    Много раз наборы данных, которые вы получаете из других источников, уже содержат этот столбец, поэтому он действительно не помогает знать, как создавать «правильные». используя нужные параметры. Есть ли способ устранить этот столбец, когда вы загружаете его, когда он уже существует? – Calvin Ku 24 March 2018 в 10:07
  • 3
    @CalvinKu, к сожалению, нет skipcols arg для read_csv, после чтения в csv вы могли бы просто сделать df = df.drop(columns=df.columns[0]), или вы могли бы просто сначала прочитать столбцы, а затем передать столбцы минус первый столбец, что-то вроде cols = pd.read_csv( ....., nrows=1).columns и затем снова перечитывать df = pd.read_csv(....., usecols=cols[1:]), это позволяет избежать накладных расходов на чтение избыточного столбца, а затем затем отбрасывать его – EdChum 24 March 2018 в 17:39
  • 4
    @EdChum Мне нравится идея об использовании. Отличный совет! Благодаря! – Calvin Ku 25 March 2018 в 11:15

Другим случаем, когда это может произойти, является то, что ваши данные были неправильно записаны в ваш csv, чтобы каждая строка заканчивалась запятой. Это приведет к тому, что вы останетесь с неузнанным столбцом Unnamed: x в конце ваших данных, когда вы попытаетесь прочитать его в df.

2
ответ дан Brendan 15 August 2018 в 14:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: