这个问题看起来很简单但是我几小时就堆叠在里面,这里看起来像我的数据:
\N
PARIS PREMIERE,1375,7
RTL9,1376,7
TV BREIZH,1162,7
C+ CINEMA,1594,7
\N
C+ SPORT,1595,7
OCS MAX,799,7
我想要的输出是:
1375
1376
1162
1594
1595
799
为此,我运行此代码:
list_data = data.split('\n')
for line in list_data:
for s in line.split(','):
params = s.split('\n')
但它似乎不起作用。如果您有任何想法我如何解决我的问题请帮助。谢谢!
params = []
list_data = data.split('\n')
for line in list_data:
if len(line.split(',')) == 3
params.append(line.split(',')[1])
您可以过滤所有不需要的分隔符:
import csv
with open('filename.csv') as f:
data = [int(i[-2]) for i in csv.reader(f) if len(i) > 1 or i[0] != '\\N']
print(data)
输出:
[1375, 1376, 1162, 1594, 1595, 799]
使用pandas
返回所需列表的一种方法:
import pandas as pd
from io import StringIO
mystr = StringIO(r"""\N
PARIS PREMIERE,1375,7
RTL9,1376,7
TV BREIZH,1162,7
C+ CINEMA,1594,7
\N
C+ SPORT,1595,7
OCS MAX,799,7""")
df = pd.read_csv(mystr, header=None, delimiter='~')
res = df.loc[df[0] != r'\N', 0].str.split(',').str[-2].astype(int).tolist()
结果:
[1375, 1376, 1162, 1594, 1595, 799]
然后,您可以使用此列表执行您喜欢的操作,例如写入文件,在程序中的其他位置使用等。