擅长:python、mysql、java
<p>您的代码忽略了第一行,因为默认情况下<code>read_csv</code>假定它是头。您可以通过添加上面建议的<code>header=None</code>使原始代码正常工作。您可能还需要考虑使用正则表达式来提取值的更可读的版本</p>
<pre><code>df = pd.read_csv('a.txt', header=None)
df['productid'] = df[0].str.findall('productid= ([0-9]+)').apply(lambda l: l[0])
df['storeid'] = df[1].str.findall('storeid= ([0-9]+)').apply(lambda l: l[0])
df['No.OfUnits'] = df[2].str.findall('No.OfUnits= ([0-9]+)').apply(lambda l: l[0])
df1 = df.loc[:, ['productid', 'storeid', 'No.OfUnits']]
df1.to_csv('a.csv', header=False, index=False, mode='a')
</code></pre>
<p>顺便说一句,熊猫并不是真正必要的。这也会起作用:</p>
<pre><code>import re
with open('a.txt') as f:
values = [re.findall('productid= ([0-9]+), storeid= ([0-9]+), No.OfUnits= ([0-9]+)',
line)[0] for line in f]
with open('a.csv', 'a') as f:
for v in values:
f.write(','.join(v) + '\n')
</code></pre>