我有一个包含大型数据集的csv,现在我需要做的是根据列是否包含数据来编写tesxt字符串。例如,如果列30包含数据,则组成文本字符串:“文本数据文本(行[30])texy数据文本(行[12])文本数据文本”并附加到新文件。
X,classA,uniqueclassindicator1,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator1,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classB,uniqueclassindicator2,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,7/9,2.05,£12.02
X,classB,uniqueclassindicator2,x,x,2,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classB,uniqueclassindicator2,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classB,uniqueclassindicator2,x,x,4,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator3,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator3,x,x,2,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator3,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator3,x,x,4,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,2,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,4,x,x,x,x,125,30.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,5,x,x,x,x,125,31.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classC,uniqueclassindicator4,x,x,6,x,x,x,x,125,2130.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator5,x,x,1,x,x,x,x,125,35.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,95/100,,£15.06
X,classA,uniqueclassindicator5,x,x,2,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator5,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator5,x,x,4,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator5,x,x,5,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
X,classA,uniqueclassindicator5,x,x,6,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,
作为同一个脚本的一部分,我需要能够为第31列和第31列执行相同的操作。 32。
例如,第30列的输出文件只能是:
Text data text 7/9 texy data text 21.8 text data text
Text data text 95/100 texy data text 21.8 text data text
对此的任何帮助将不胜感激。
亲切的问候
答案 0 :(得分:4)
假设你有一个字符串列表,每行一个项目。
a = ['X,classA,uniqueclassindicator1,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,',
'X,classA,uniqueclassindicator1,x,x,3,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,,,',
'X,classB,uniqueclassindicator2,x,x,1,x,x,x,x,125,21.8,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,7/9,2.05,\xc2\xa312.02',
.....
]
for item in a:
item = item.split(',')
if item[29]:
print ('Text data text %s texy data text %s text data text' % (item[29], item[11]))
答案 1 :(得分:1)
试试这个,与上面的内容非常相似,但会打开一个csv文件:
import csv
with open(test.csv', 'rb') as mycsv:
for item in mycsv:
item = item.split(',')
if item[29]:
print ("Data text data %s" % (item[29])
希望有所帮助:)