У меня есть пандас Dataframe, который выглядит следующим образом:
ABC_1 ABC_2 ABC_3 ABC_4
x y z k
NaN y NaN k
x NaN z NaN
x NaN z k
... ... ... ...
Это всего лишь один столбец ABC
, который был разбит на множество столбцов.Точно так же есть другие столбцы, такие как PQR
, которые были разделены на разные части.
- Каждый столбец содержит 100 значений (включая NaN), т. Е. Форму
df
можно рассматривать как (100,4)
. - Я хочу объединить всечетыре столбца в один столбец с именем
ABC
, но он должен содержать все значения из всех четырех столбцов.NaN
значения могут быть удалены заранее или после объединения, так что это не проблема, хотя я чувствую, что удаление всех NaNs
сразу после объединения будет более эффективным.
Короче говоря, новый столбец долженвыглядит так:
ABC
x
x
x
y
y
z
z
z
k
k
k
...
То, что я пробовал:
Я пытался использовать pd.concat
, но это не сработало, так как выдает duplicate index error
, что очевидно из этого случая.Теперь есть способы справиться с этим, но я не думаю, что он будет эффективен в вычислительном отношении, если фрейм данных достаточно большой.
Я попытался поместить все значения в один список, а затем присвоить его столбцуновый фрейм данных, но, как я уже сказал, фрейм данных может быть огромным, и список будет занимать много места.
Может кто-нибудь сказать, пожалуйста, как это сделать эффективно?
Редактировать: может быть еще одна ситуация.Нет необходимости, чтобы все имена столбцов следовали одному и тому же шаблону.Например, приведенный выше фрейм данных также содержит столбцы, подобные этому
ABC_1 ABC_2 ABC_3 ABC_4 ABC_5_patt
x y z k p
NaN y NaN k p
x NaN z NaN p
x NaN z k NaN
... ... ... ... ...