选项1
import numpy as np, pandas as pds = df.c1.str.split()l = s.str.len()newdf = df.loc[df.index.repeat(l)].assign(c1=np.concatenate(s)).set_index(['c0', 'c1'])newdf c2c0 c1 A a D b DB d E e E f EC s F
选项2
应该更快
import numpy as np, pandas as pds = np.core.defchararray.split(df.c1.values.astype(str), ' ')l = [len(x) for x in s.tolist()]r = np.arange(len(s)).repeat(l)i = pd.MultiIndex.from_arrays([ df.c0.values[r], np.concatenate(s)], names=['c0', 'c1'])newdf = pd.Dataframe({'c2': df.c2.values[r]}, i)newdf c2c0 c1 A a D b DB d E e E f EC s F


