擅长:python、mysql、java
<p>您可以尝试以下方法:</p>
<pre><code>from itertools import cycle
df=df.set_index('Index').drop_duplicates()
newdf= pd.DataFrame(data=df.sentence, columns=['sentence'], index=df.index)
newdf['ending']=df[df.columns[1:]].values.tolist()
newdf=newdf.explode('ending')
ids = cycle([0,1,2,3])
newdf.insert(1, 'endingid', [next(ids) for idx in range(len(newdf))])
print(newdf)
</code></pre>
<p>输出:</p>
<pre><code> sentence endingid ending
Index
0 ABC 0 DEF
0 ABC 1 GHI
0 ABC 2 JKL
0 ABC 3 MNO
1 LKJ 0 KJS
1 LKJ 1 AJA
1 LKJ 2 QHW
1 LKJ 3 IUH
</code></pre>