为由某种模式分隔的每条记录创建一行
Create a row for each record separated by some pattern
我需要在 pandas 数据框中为 "ativos"
列中的每条记录创建一行,并且必须重复其他数据 ("nome"
)。记录在 "ativos"
列中由此字符串 "\r\n"
分隔。但是,我不知道如何正确地做到这一点。
nome activos
0 Luiz ABC\r\nDEF\r\nGHI
预期结果:
nome activos
0 Luiz ABC
1 Luiz DEF
2 Luiz GHI
您可以使用 split
和 explode
:
df['activos'] = df['activos'].str.split(r'\r\n')
df.explode('activos', ignore_index=True)
使用str.split
和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
设置:
df = pd.DataFrame({'nome': ['Luiz'], 'ativos': [r'ABC\r\nDEF\r\nGHI']})
print(df)
# Output
nome ativos
0 Luiz ABC\r\nDEF\r\nGHI
我需要在 pandas 数据框中为 "ativos"
列中的每条记录创建一行,并且必须重复其他数据 ("nome"
)。记录在 "ativos"
列中由此字符串 "\r\n"
分隔。但是,我不知道如何正确地做到这一点。
nome activos
0 Luiz ABC\r\nDEF\r\nGHI
预期结果:
nome activos
0 Luiz ABC
1 Luiz DEF
2 Luiz GHI
您可以使用 split
和 explode
:
df['activos'] = df['activos'].str.split(r'\r\n')
df.explode('activos', ignore_index=True)
使用str.split
和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
设置:
df = pd.DataFrame({'nome': ['Luiz'], 'ativos': [r'ABC\r\nDEF\r\nGHI']})
print(df)
# Output
nome ativos
0 Luiz ABC\r\nDEF\r\nGHI