I need to create a row in the pandas dataframe for each record in the "ativos"
column and the other data ("nome"
) must be repeated. Records are separated by this string "\r\n"
in the "ativos"
column. However, I don't know how to do it correctly.
nome activos
0 Luiz ABC\r\nDEF\r\nGHI
Expected result:
nome activos
0 Luiz ABC
1 Luiz DEF
2 Luiz GHI
CodePudding user response:
Use str.split
and explode
:
out = df.assign(activos=df['ativos'].str.split(r'\\r\\n')).explode('ativos')
print(out)
# Output
nome ativos
0 Luiz ABC
0 Luiz DEF
0 Luiz GHI
Setup:
df = pd.DataFrame({'nome': ['Luiz'], 'ativos': [r'ABC\r\nDEF\r\nGHI']})
print(df)
# Output
nome ativos
0 Luiz ABC\r\nDEF\r\nGHI
CodePudding user response:
You can use split
and explode
:
df['activos'] = df['activos'].str.split(r'\\r\\n')
df.explode('activos', ignore_index=True)