【发布时间】:2020-09-16 07:10:42
【问题描述】:
我正在尝试从 csv 文件中写入两个 txt 文件( Test_8.txt 和 Test_9.txt )。 从第 COL4 行开始,我得到单引号和双引号以及 '['。
我怎样才能摆脱它们?
csvfie:
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
预期输出:
TYPE 1.0
NR Test_8
COL1 95
COL2 0
COL3 4.250
COL4 3
-3.000 -3.000 0.900
4.750 -0.110 1.000
12.751 2.861 1.000
16.500 4.260 1.000
REMARK
Test_8 tested
with python
我的代码:
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')
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 = [[x,pd.DataFrame(y)] for x, y in df.groupby(df.index, as_index=True)]
#print ans
for table in ans:
line1=table[1].iloc[0]
#print line1
line1['TYPE']=1.0
line1['NR']=table[0]
col567=table[1][['COL5','COL6','COL7']].sort_values(by=['COL5'], ascending=True)
print col567
for row in range(len(col567)):
#print row
line1[str(col567.values[row])[1:-1]] = None
line1['']=None
col8=table[1]['REMARK'].str.split(',')[0]
col8=table[1]['REMARK'].str.split(', ')[1]
line1['REMARK']=str(col8.values[0])
line1['REMARK']=str(col8.values[1])
line1=line1[['TYPE', 'NR','','COL1','', 'COL2','', 'COL3', 'COL4',
str(col567.values[0:]), '', 'REMARK\n', col8.values[0],col8.values[1]]]
line1.to_csv(table[0]+'.txt',sep='\t')
我的输出;
TYPE 1.0
NR Test_8
COL1 95
COL2 0
COL3 4.250
COL4 3
"[['-3.000' '-3.000' '0.900']
['12.751' '2.861' '1.000']
['16.500' '4.260' '1.000']
['4.750' '-0.110' '1.000']]"
"REMARK
"
Test_8 tested
python
【问题讨论】:
-
您应该将当前输出添加到问题中。
-
有点不清楚您要达到的目标,您可以继续添加有关要从 CSV 提取到相应 txt 文件的部分的详细信息
-
@xvan 谢谢我已经添加了我的输出
-
不要使用
str(),而是创建更复杂的代码来将列表转换为字符串。 -
@rohitkeshav,是的,我的目标是从 csv 中获取两个 txtfile(Test_8.txt 和 Test_9.txt)
标签: python python-3.x pandas python-2.7 csv