我有一个数据框,其列权限为“Name”,其中包含以下格式的字符串:“Group1name / Group2name / Group3name / Group4name”
我想根据“名称”列和“/”分隔符创建3个新列:
第1级:“Group1name”
第2级:“Group1name / Group2name”
第3级:“Group1name / Group2name / Group3name”
如何在数据框中创建这些新列?
答案 0 :(得分:0)
此解决方案使用生成器表达式,它基本上是嵌套for循环。它会根据Name
分隔符拆分df
/
列中找到的字符串。然后它将它连接在一起,但只有在连接在一起时才会获取相应列的第一个n
元素。
df = pd.DataFrame({'Name': ["Group1name / Group2name / Group3name / Group4name"]})
for n in range(1, 4): # 1, 2, 3 for column indexing and naming.
df['col_{0}'.format(n)] = ' / '.join(group for groups in df.Name.str.split(' / ')
for group in groups[:n])
>>> df.T
0
Name Group1name / Group2name / Group3name / Group4name
col_1 Group1name
col_2 Group1name / Group2name
col_3 Group1name / Group2name / Group3name