繁体   English   中英

带有sep参数的python read_csv在一栏中给出所有内容,或在第6行中表示预期的2个文件,但看到了4个

[英]python read_csv with sep parameters is giving all in one column or says expected 2 fileds in line 6 but saw 4

我需要将* .inp文件读入数据框。

该文件看起来像这样

B*** BASE  321 Emit 200.000

/mrpo

:B311

:200.

Emit,   200.000

CG,    1,UFNQ,    123.56

CG,    2,UFNQ,    143.76

CG,    33,UFNQ,   123.56

CG,    223,UFNQ,  143.76

B*** qwqwndqq is iellai ai  200.000  67

B*** qwqwndqq is iellai ai  5050.000 63

/mrpo

B*** END 321 Emit 200.000

/EOF

我想将其读取为数据帧并访问并更改所有行中的第二个数字(期望在前5行和后3行中)并重写一个新的* .inp文件

这是我正在使用的代码

df=pandas.read_csv(file_name, sep =',',header = None, engine ='python')

输出:第7行的预期1字段看到了2

df=pandas.read_csv(file_name, sep ='s',header = None, engine ='python')

输出:多列

df=pandas.read_csv(file_name, sep ='delimiter',header = None, engine ='python')

输出:多列

我想要这样的新文件

B*** BASE  321 Emit 200.000

/mrpo

:B311

:200.

Emit,   200.000

CG,    10001,UFNQ,    123.56

CG,    10002,UFNQ,    143.76

CG,    10033,UFNQ,   123.56

CG,    10223,UFNQ,  143.76

B*** qwqwndqq is iellai ai  200.000  67

B*** qwqwndqq is iellai ai  5050.000 63

/mrpo

B*** END 321 Emit 200.000

/EOF

请建议python中是否还有其他方法

我会为此使用csv阅读器。 这大致就是我的操作方式,但是可能需要对索引进行一些调整。

import csv

filename = 'input.csv'
tempfile = 'output.csv'

with open(filename, 'rb') as csvFile, tempfile:
    reader = csv.reader(csvFile, delimiter=',', quotechar='"')
    writer = csv.writer(tempfile, delimiter=',', quotechar='"')
    row_count = sum(1 for row in reader)

    for i, row in enumerate(reader):
        if (i >= 4) and (i<row_count-3):
            row[1] = 10000 + row[1]
            writer.writerow(row)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM