У меня есть набор данных с 58 столбцами, и я хочу разделить один столбец с именами, разделенными запятой.Ниже приведен пример 4 столбцов из всего набора данных с 50+ столбцами.
Player Deal_Number Name_Group City
A 1 ABC, BGC, AGD Bangalore
A 1 ABC, BGC, AGD New York
A 1 ABC, BGC, AGD London
В «Name_Group» будут дубликаты, но в целом, если мы увидим каждую строку со всеми 50+ столбцами вместе, не будетдубликаты.Я пытаюсь разделить поле «Name_Group», которое фактически повторяется для каждого города.
Я использую следующий код:
MS4.set_index(['Name_Group'])
.stack()
.str.split(',', expand=True)
.stack()
.unstack()
.reset_index(-1, drop=True)
.reset_index()
Я получаю следующую ошибку и запрашиваю помощь в разделении данных.
'ValueError: Индекс содержит повторяющиеся записи, не может изменить форму'
В дополнение к вышесказанному, я попробовал следующий подход.
lst_col = 'Name_Group'
x = MS4.assign(**{lst_col:MS4[lst_col].str.split(',')})
pd.DataFrame({
col:np.repeat(x[col].values, x[lst_col].str.len())
for col in x.columns.difference([lst_col])
}).assign(**{lst_col:np.concatenate(x[lst_col].values)})
[x.columns.tolist()]
Здесь я получаю TypeError: Невозможно привести массивданные из dtype ('float64') в dtype ('int64') по правилу 'safe'
Спасибо, Шринивас