我有一个如下所示的字符串列表:
'A[title]'
'a'
'b'
'c'
'B[title]'
'd'
'C[title]'
'e'
'f'
...
每个 block 由标有“title”的标题分隔。 我需要将这些 block 分开并按如下格式设置:
'A[title]' ,'a'
'A[title]' ,'b'
'A[title]' ,'c'
'B[title]' ,'d'
'C[title]' ,'e'
'C[title]' ,'f'
...
我目前正在使用 for 循环来完成这项工作,我的代码如下所示:
data=pd.Series(data)
newd = []
for i in data.index:
if '[' not in data[i]:
current_title = data[i]
else:
newd.append([current_title,data[i]])
这是所需的格式,但我实际上试图避免使用 for 循环。 那么,有没有办法使用内置的 pandas 函数来做到这一点?
最佳答案
您可以使用 str.contains
和 ffill
data=data.to_frame('ori')
data['title']=data.ori[data.ori.str.contains('title')]
data=data.ffill().loc[lambda x : x.ori!=x.title]
data
Out[499]:
ori title
1 a A[title]
2 b A[title]
3 c A[title]
5 d B[title]
7 e C[title]
8 f C[title]
关于python - 数据是包含标题和小节的列,如何拆分它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52859688/