代码如下:
提取某列的中文及中文符号,然后切词输出列表。但是当我把每一行数据循环运行时,发现和单独运行输出的结果不一致。
data = pd.read_csv('all.csv', error_bad_lines=False)
data1 = data[-2:-1]['news']
s = ''.join(re.findall(u'[\u4e00-\u9fff\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]',
str(data1)))
s = [word for word in jieba.cut(str(s), cut_all=False)]
print('# = ', str(data1)[20:])
print(type(data1))
print(s)
print('length = ', len(s))
print('\n')
for i in data1:
print('# = ', str(i)[20:])
print(type(i))
i = ''.join(re.findall(u'[\u4e00-\u9fff\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]',
str(i)))
i = [word for word in jieba.cut(str(i), cut_all=False)]
print(i)
print('length = ', len(i))
乍一看上去,输出的列表长度不相同,左思右想都找不出问题在哪里
于是笔者突然想到会不会是显示不全的问题于是在代码前面加入如下几行:
# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
# 设置显示的长度为100
pd.set_option('max_colwidth', 100)
按理说,显示的问题不应该会影响到实际的输出长度,但是事实上影响了输出的实际结果,其中原因笔者不由而知,只好先写下来。