我是Python的新手,也是这个论坛的新手。以下是问题
该文件如图所示 File Format。 我可以在text2列中拆分文本,并使用以下代码
写入不同的行myfile=open('Output.csv,'w')
wr=csv.writer(myfile,lineterminator='\n')
df=pd.read_excel("Input.xlsx")
for txt in df['Text2']:
sentence.append(txt.split('.'))
for pharse in sentence:
for words in pharse:
wr.writerow([words])
我需要一个关于如何映射句子的帮助,这些句子的长度是可变的。还有,如何实现附加图像文件中提到的特定格式。 此外,writerow函数开始在第一行写入,但如何指定从第三列开始。
非常感谢任何帮助!
答案 0 :(得分:1)
试试这个:
myfile = open('Output.csv','w')
wr = csv.writer(myfile, lineterminator='\n')
entries = {}
for k, txt1, txt2 in df.values:
sentences = [s.strip() for s in txt2.split('.') if len(s.strip()) > 0]
# sentences = [s.strip() + '.' for s in txt2.split('.') if len(s.strip()) > 0]
entries[k] = [txt1, sentences]
for k in entries.keys():
txt1, txt2 = entries[k]
wr.writerow([k, txt1, txt2[0]])
for s in txt2[1:]:
wr.writerow(['', '', s])
myfile.close()
如果要在csv文件中的每个句子末尾加一个点,请使用替代sentences = ...
行(上面代码中注释的行)。从您的示例图像中,不清楚点需要发生什么(有时它出现在输出中,有时它不会出现)。
此外,如果需要,可以通过将两个循环组合成一个循环来进一步简化代码:
myfile = open('Output.csv','w')
wr = csv.writer(myfile,lineterminator='\n')
for k, txt1, txt2 in df.values:
sentences = [s.strip() for s in txt2.split('.') if len(s.strip()) > 0]
wr.writerow([k, txt1, sentences[0]])
for s in sentences[1:]:
wr.writerow([None,'',s])
myfile.close()