<p>我们可以将您的值拆分为一个列表,然后将它们拆分为两个元素的相等块</p>
<p>然后我们检查元素数<code>> 2</code>和<code>explode</code>这些行的位置:</p>
<pre><code>splitted = df['column2'].str.split()
lists = splitted.apply(lambda lst: [lst[i::len(lst)//2] for i in range(len(lst)//2)])
df['column2'] = np.where(splitted.str.len().gt(2), lists, df['column2'])
dfn = df.explode('column2')
dfn['column2'] = np.where(
dfn['column2'].apply(type).eq(list),
dfn['column2'].str.join(', '),
dfn['column2']
)
dfn['countsOfWord'] = dfn['column2'].str.split().str.len()
</code></pre>
<pre><code> columnId column2 column3 countsOfWord
0 id1 hogedijk klarenbeek 2016 2
1 id2 hogedijk, hogedijk 2012 2
1 id2 klarenbeek, klarenbeek 2012 2
1 id2 zuidoost, zuidoost 2012 2
2 id3 zuidoost clouds 2010 2
3 id4 artzuid, zuidoost 2019 2
3 id4 zuidoost, clouds 2019 2
3 id4 hogedijk, hogedijk 2019 2
3 id4 klarenbeek, klarenbeek 2019 2
</code></pre>