原始数据组为下图,每一行都有一些数据,且每一行的数据长度不相同,分别以逗号和空格分割。
想批量转化为第二张图片当中的数据形式。
谢谢各位
import pandas as pd
import re
df = pd.DataFrame({'Category':['C,D','A,B,C','A,D','C','A,D','A,B,C','A,B,C','D']})
def st(stri,colN):
col = "columns"+str(colN)
lis = re.split('[ ,]',stri)
data = pd.DataFrame({col:lis})
return data
data2 = pd.DataFrame()
for ind, row in df.iterrows():
data2 = pd.concat([data2,st(row['Category'],str(ind+1))],axis=1)
data2
我先用文字解析一下哈,看看是不是这个意思
原始数据有多行,需要对每一行进行处理,处理规则为:
识别逗号为新数据每行的分隔符,识别空格为每个字段的分隔符
因此原数据一定满足下面这样的格式
字段1 字段2 字段3,字段1 字段2 字段3,字段1 字段2 字段3...
那么这其实就是按每行循环,按逗号切割成列表 后再循环 按空格切割生成一行新数据