Этот вопрос основан на Панды объединяют несколько групп столбцов в несколько целевых столбцов по имени . Тем не менее, мои данные организованы досадно
import pandas as pd
df = pd.DataFrame([(101, 'a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 4, 5, 6, 'aa', 'bb', 'cc', 'dd', 'ee', 'ff'),
(102,'g', 'h', 'i', 'j', 'k', 'l' , 7, 8, 9, 10, 11, 12, 'gg', 'hh', 'ii', 'jj', 'kk', 'll')],
columns=['id','a__1', 'a__2', 'a__3', 'a_1', 'a_2', 'a_3','b__1', 'b__2', 'b__3', 'b_1', 'b_2', 'b_3','c__1', 'c__2', 'c__3', 'c_1', 'c_2', 'c_3'])
df
И фрейм данных выглядит так:
id a__1 a__2 a__3 a_1 a_2 a_3 b__1 b__2 b__3 b_1 b_2 b_3 c__1 c__2 \
0 101 a b c d e f 1 2 3 4 5 6 aa bb
1 102 g h i j k l 7 8 9 10 11 12 gg hh
c__3 c_1 c_2 c_3
0 cc dd ee ff
1 ii jj kk ll
Как вы можете видеть, вместо того, чтобы все разделители были только одним подчеркиванием, они иногда были двумя подчеркиваниями.
В конце я бы хотел организовать свои данные следующим образом, обратите внимание, что a__1 должен предшествовать a_1 и так далее:
id a b c
0 101 a 1 aa
1 101 b 2 bb
2 101 c 3 cc
3 101 d 4 dd
4 101 e 5 ee
5 101 f 6 ff
6 102 g 7 gg
7 102 h 8 hh
8 102 i 9 ii
9 102 j 10 jj
10 102 k 11 kk
11 102 l 12 ll
В основном моя проблема в том, что вместо одного подчеркивания у меня иногда есть 2. Теперь это не работает с функцией pd.wide_to_long, поскольку я не могу установить аргумент разделителя как '_' или '__'. Я надеюсь, вы понимаете мой вопрос.