Изменение формы данных в Python pandas - PullRequest
0 голосов
/ 20 ноября 2018

Данные, показанные ниже, являются упрощенным примером.Фактический фрейм данных - это 3750 строк фрейма данных 2 столбца.Мне нужно преобразовать фрейм данных в другую структуру.

A     A2
0.1   1
0.4   2
0.6   3
B     B2
0.8   1
0.7   2
0.9   3
C     C2
0.3   1
0.6   2
0.8   3

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

A    A2    B    B2    C    C2
0.1  1     0.8  1     0.3  1
0.4  2     0.7  2     0.6  2
0.6  3     0.9  3     0.8  3

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

попробуйте это, если вы не хотите жестко кодировать свои значения.

df['header']=pd.to_numeric(df[0],errors='coerce')
l= df['header'].values
m_l = l.reshape((np.isnan(l).sum(),-1))[:,1:]
h=df[df['header'].isnull()][0].values
print pd.DataFrame(dict(zip(h,m_l)))

Вывод:

     A    B    C
0  0.1  0.8  0.3
1  0.4  0.7  0.6
2  0.6  0.9  0.8
0 голосов
/ 20 ноября 2018

Вы можете изменить свои данные и создать новый фрейм данных:

cols = 6
rows = 4
df = pd.DataFrame(df.values.T.reshape(cols,rows).T)
df.rename(columns=df.iloc[0]).drop(0)

    A    B    C  A2 B2 C2
1  0.1  0.8  0.3  1  1  1
2  0.4  0.7  0.6  2  2  2
3  0.6  0.9  0.8  3  3  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...