Проблема с форматированием набора данных

Получив эти данные из XML и сохранив их в Pandas DataFrame, я хотел спросить, нужно ли и как форматировать данные в соответствии с требованиями.

Проблема с форматированием набора данных

Проблема 1: Обычно каждые три строки необходимо объединить, удалив NaN, чтобы представить одну строку. Например, правильным способом представления этих данных будет:

  qid, qualid, val

0 2065887850, 227, (0,0,0,0,0,0,0,0,0,0)
1 2021905255,  30, (49214,.....,...,....) 

Проблема 2:

В некоторых местах переменная val фактически отсутствует (каждая третья строка в исходных данных), и для этого мне нужно разместить NaN. Желаемый результат в этом случае будет. В идеале мне нужно решение, которое решает обе проблемы.

  qid, qualid, val

0 2065887850, 227, (0,0,0,0,0,0,0,0,0,0)
1 2121905255,  23, (49214,.....,...,....) 
2 2834347850,  17, NaN
3 2121905255, 930, (14124,.....,...,....) 
4 2465212110, 227, (2,2,1,4,6,7,0,0,0,0)
5 2921905225, 130, NaN
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать преобразовать фрейм данных в строковый тип и сгруппировать по 3 строкам и добавить строки,

      col_1   col_2     col_3
0   29021214    NaN     NaN
1   NaN         227     NaN
2   NaN         NaN     0,0,0,0
4   20218343    NaN     NaN
5   NaN         30      NaN
7   324234      NaN     NaN
8   NaN         532     NaN
9   NaN         NaN     NaN


temp = df.col_1.notnull().cumsum()
df = df.replace(np.nan,'').astype(str)
df.groupby(temp).sum().replace('',np.nan)

Из:

    col_1       col_2   col_3
col_1           
1   29021214    227    0,0,0,0
2   20218343    30     NaN
3   324234      532.0   NaN

Я не хочу добавлять строки. Это разрушило бы цель набора данных. Каждый идентификатор уникален и связан с ним.

Abhinav Ralhan 27.10.2018 15:38

кажется, что ваши данные представляют собой одну запись с данными `` 3 строки '', с этой логикой она не изменит информацию о записи, можете ли вы показать исключительный случай, я изменю ее @AbhinavRalhan

Naga kiran 27.10.2018 15:42

Другие вопросы по теме