<p>从数据帧开始:</p>
<pre class="lang-py prettyprint-override"><code>>>> import pandas as pd
>>> df = pd.DataFrame({'PLUGS\nDESIGN\nGEAR': ['700\nDaewoo 8000 Gearless', '300\nHyundai 4400 Gearless', '600\nSTX 2600 Gearless', '200\nB170 \nGeared', '362 Wenchong 1700 Mk II \nGeared', '252\nRichMax 1550 Gearless'], },
... index = [0, 1, 2, 3, 4, 5])
>>> df
PLUGS\nDESIGN\nGEAR
0 700\nDaewoo 8000 Gearless
1 300\nHyundai 4400 Gearless
2 600\nSTX 2600 Gearless
3 200\nB170 \nGeared
4 362 Wenchong 1700 Mk II \nGeared
5 252\nRichMax 1550 Gearless
</code></pre>
<p>确实可以在几个分隔符上使用<code>split</code>方法,这里是<code>\n</code>和<code>space</code>:</p>
<pre class="lang-py prettyprint-override"><code>>>> df = pd.DataFrame(df['PLUGS\nDESIGN\nGEAR'].str.split('\n| '))
PLUGS\nDESIGN\nGEAR
0 [700, Daewoo, 8000, , Gearless]
1 [300, Hyundai, 4400, , Gearless]
2 [600, STX, 2600, , Gearless]
3 [200, B170, , Geared]
4 [362, Wenchong, 1700, Mk, II, , Geared]
5 [252, RichMax, 1550, , Gearless]
</code></pre>
<p>然后,可以将第一个和最后一个元素分配给正确的列,将其余元素分配给<code>DESIGN</code>列:</p>
<pre class="lang-py prettyprint-override"><code>>>> df['PLUGS'] = df['PLUGS\nDESIGN\nGEAR'].str[0]
>>> df['DESIGN'] = df['PLUGS\nDESIGN\nGEAR'].str[1:-1]
>>> df['GEAR'] = df['PLUGS\nDESIGN\nGEAR'].str[-1]
>>> df
PLUGS\nDESIGN\nGEAR PLUGS DESIGN GEAR
0 [700, Daewoo, 8000, , Gearless] 700 [Daewoo, 8000, ] Gearless
1 [300, Hyundai, 4400, , Gearless] 300 [Hyundai, 4400, ] Gearless
2 [600, STX, 2600, , Gearless] 600 [STX, 2600, ] Gearless
3 [200, B170, , Geared] 200 [B170, ] Geared
4 [362, Wenchong, 1700, Mk, II, , Geared] 362 [Wenchong, 1700, Mk, II, ] Geared
5 [252, RichMax, 1550, , Gearless] 252 [RichMax, 1550, ] Gearless
</code></pre>
<p>最后一件事是改进<code>DESIGN</code>列,使用<code>join</code>方法将其映射为字符串而不是列表,并删除<code>PLUGS\nDESIGN\nGEAR</code>列,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>>>> df['DESIGN'] = df['DESIGN'].apply(lambda x: ' '.join(map(str, x)))
>>> df.drop(['PLUGS\nDESIGN\nGEAR'], axis=1)
PLUGS DESIGN GEAR
0 700 Daewoo 8000 Gearless
1 300 Hyundai 4400 Gearless
2 600 STX 2600 Gearless
3 200 B170 Geared
4 362 Wenchong 1700 Mk II Geared
5 252 RichMax 1550 Gearless
</code></pre>