<p>我假设您希望每行的最后一个元素是第2列,其余元素在第1列。因此,您可能必须手动执行此操作,因为不同行的空白量不一致,而且我认为标准的<code>read_csv</code>方法不容易实现。因此,这里有一个替代方案</p>
<p>这是我们的数据</p>
<pre><code>file = StringIO(
"""Item qty
Betarraga paquete 5 unidades 1
Betarraga paquete 5 unidades 2
Betarraga paquete 5 unidades 1
Betarraga paquete 5 unidades 1
CANASTA PEQUEÑA 1
Cebolla Nueva 20 unidades 1
Cebolla Nueva 20 unidades 2
Cebolla Nueva 20 unidades 1
Cebollin atado de 3 2
Cebollin atado de 3 2
Cebollin atado de 3 3
Cebollin atado de 3 1
Cebollin atado de 3 1
Cebollin atado de 3 1
Cebollin atado de 3 1
""")
#If 'myfile.txt' is where this data is, you should replace the above with
# file = open('myfile.txt', 'r')
</code></pre>
<p>然后,我们逐行读取<code>file</code>,在空白处拆分该行,使用最后一个标记作为第2列,其余标记作为第1列,并插入一个数据帧</p>
<pre><code>col1 = []
col2 = []
for line in file:
tokens = line.split()
c1 = ' '.join(tokens[:-1])
c2 = tokens[-1]
col1.append(c1)
col2.append(c2)
df = pd.DataFrame({col1[0] : col1[1:], col2[0] : col2[1:]})
df['qty'] = df['qty'].astype(int)
df
</code></pre>
<p>产生</p>
<pre><code>
Item qty
-
0 Betarraga paquete 5 unidades 1
1 Betarraga paquete 5 unidades 2
2 Betarraga paquete 5 unidades 1
3 Betarraga paquete 5 unidades 1
4 CANASTA PEQUEÑA 1
5 Cebolla Nueva 20 unidades 1
6 Cebolla Nueva 20 unidades 2
7 Cebolla Nueva 20 unidades 1
8 Cebollin atado de 3 2
9 Cebollin atado de 3 2
10 Cebollin atado de 3 3
11 Cebollin atado de 3 1
12 Cebollin atado de 3 1
13 Cebollin atado de 3 1
14 Cebollin atado de 3 1
</code></pre>