Сброс индексов информационного кадра панд, чтобы начать с нуля - PullRequest
0 голосов
/ 18 декабря 2018

Я нарезаю фрейм данных с формой (10, 8004) на более мелкие фрагменты с формой (58, 10), чтобы иметь возможность наносить их на график (его также необходимо транспонировать перед построением).n_samples = 58.

Проблема в том, что после разрезания индекса меньшие куски не начинаются с нуля, и на графиках появляются большие пустые места.Я пытался сбросить индекс, используя разные методы, но все они не удалось.Может ли кто-нибудь помочь мне найти правильный способ сделать это?

Вот некоторые из них, которые я пробовал:

for i in range(0, 138):
    sliced_df = df.iloc[:, range(i*n_samples, (i+1)*n_samples)]
    if i != 0:
       sliced_df = sliced_df.rename(index=int, columns=range(0, n_samples))
    sliced_df.T.plot(kind='line', alpha=0.5, zorder=1, label='')

Здесь пытаются использовать reindex_axis

for i in range(0, 138):
   sliced_df = df.iloc[:, range(i*n_samples, (i+1)*n_samples)].reindex_axis(range(0,n_samples), axis=1).T
   sliced_df.plot(kind='line', alpha=0.5, zorder=1, label='')

Также пробовали reset_index(drop=True):

for i in range(0, 138):
   sliced_df = df.iloc[:, range(i*n_samples, (i+1)*n_samples)].reset_index(drop=True).T
   sliced_df.plot(kind='line', alpha=0.5, zorder=1, label='') 

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Моя ошибка состояла в том, чтобы сначала транспонировать sliced_df, а затем сбросить индексы!Так что все эти решения работали:

sliced_df = df.iloc[:, range(ts * n_test_samples, (ts + 1) * n_test_samples)].T.reset_index().drop(['index'], axis=1)

или:

sliced_df = df.iloc[:, range(ts * n_test_samples, (ts + 1) * n_test_samples)].T.reset_index(drop=True)

или:

sliced_df = df.iloc[:, range(ts * n_test_samples, (ts + 1) * n_test_samples)].T sliced_df.index = np.arange(range(0,n_samples))

0 голосов
/ 18 декабря 2018

df = pd.DataFrame({'X': [7, 2, 0, 3, 4, 2, 5, 0, 3, 4]}) - это пример данных, которые я использую.

df1 = df.iloc[4:8]
df1.index = np.arange(len(df1))
df1

Теперь у df1 должен быть правильный индекс.Вы должны распространить эту идею на ваш случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...