<p>如果希望文本不带<code>[]</code>和<code>quota</code>,则不要使用<code>str()</code>和defalt格式,而是创建自己的函数来格式化文本。您可以为此使用<code>" ".join()</code>和<code>for</code>-loop</p>
<p>示例代码</p>
<pre><code>import numpy as np
data = np.array([['-3.000', '-3.000', '0.900'],
['12.751', '2.861', '1.000'],
['16.500', '4.260', '1.000'],
['4.750', '-0.110', '1.000']])
print(' - default format -')
text = str(data)
print(text)
print(' - own format -')
text = ''
for row in data:
text += ' '.join(row) + '\n'
print(text)
</code></pre>
<p>结果:</p>
<pre><code> - default format -
[['-3.000' '-3.000' '0.900']
['12.751' '2.861' '1.000']
['16.500' '4.260' '1.000']
['4.750' '-0.110' '1.000']]
- own format -
-3.000 -3.000 0.900
12.751 2.861 1.000
16.500 4.260 1.000
4.750 -0.110 1.000
</code></pre>
<hr/>
<p><strong>顺便说一句:</strong>您需要转换<code>col567.values[0:]</code></p>
<pre><code>print(str(col567.values[0:]))
text = ''
for row in col567.values[0:]:
text += " ".join(row) + '\n'
print(text)
</code></pre>
<p>并在</p>
<pre><code>line1=line1[['TYPE', 'NR','','COL1','', 'COL2','', 'COL3', 'COL4',
text, '', 'REMARK\n', col8.values[0],col8.values[1]]]
</code></pre>
<p>我试图运行你的代码,但它有很多错误,它从来没有工作</p>
<hr/>
<p>使用字符串格式化的示例代码</p>
<p>我使用<code>io.StringIO</code>只是为了用数据模拟文件,但您使用<code>pd.read_csv</code></p>
<p>顺便说一句:我必须更改一些元素,因为要获得正确排序的数据,它们必须是整数/浮点值,而不是字符串<code>{:,.3f}</code></p>
<pre><code>import os
import pandas as pd
pd.options.mode.chained_assignment = None
#df=pd.read_csv(r'C:\Users\Desktop\test_map\test\mycsv_v1.csv',sep=';',index_col='NR')
text = u'''NR;COL1;COL2;COL3;COL4;COL5;COL6;COL7;REMARK
Test_9;96;0;4.26;4;5.25;-0.01;1;Test_9 tested, python
Test_9;96;0;4.26;4;11.75;2.35;1;Test_9 tested, python
Test_9;96;0;4.26;4;-3;-3;0.9;Test_9 tested, python
Test_8;95;0;4.25;3;4.75;-0.11;1;Test_8 tested, python
Test_8;95;0;4.25;3;-3;-3;0.9;Test_8 tested, python
Test_8;95;0;4.25;3;16.5;4.26;1;Test_8 tested, python
Test_8;95;0;4.25;3;12.751;2.861;1;Test_8 tested, python'''
import io
df = pd.read_csv(io.StringIO(text), sep=';', index_col='NR')
df['COL3'] = df['COL3'].map('{:,.3f}'.format)
#df['COL5'] = df['COL5'].map('{:,.3f}'.format)
#df['COL6'] = df['COL6'].map('{:,.3f}'.format)
#df['COL7'] = df['COL7'].map('{:,.3f}'.format)
ans = df.groupby(df.index, as_index=True)
for table in ans:
line1 = table[1].iloc[0]
col567 = table[1][['COL5','COL6','COL7']].sort_values(by=['COL5'], ascending=True)
col567_text = '\n'.join(' '.join('{:,.3f}'.format(item) for item in row) for row in col567.values[0:])
col8 = table[1]['REMARK'][0].split(', ')
text = '''TYPE {type_}
NR {nr}
COL1 {col1}
COL2 {col2}
COL3 {col3}
COL4 {col4}
{col567}
REMARK
{remark1}
{remark2}'''.format(
type_ = 1.0,
nr = table[0],
col1 = table[1]['COL1'][0],
col2 = table[1]['COL2'][0],
col3 = table[1]['COL3'][0],
col4 = table[1]['COL4'][0],
col567 = col567_text,
remark1 = col8[0],
remark2 = col8[1],
)
print(text)
with open(table[0]+'.txt', 'w') as f:
f.write(text)
</code></pre>