我是python初学者,不知道怎么在python中读取excel中的中文单元格序列,后来发现了这种方法,大概就是利用txt中的另存为时候选择编码方式来变换编码,具体步骤如下:
1、excel 另存为txt,编码方式设为 utf-8。(其他编码方式没有试过,应该也可以)
2、canopy/ipython中 :
>>from pandas import Series, DataFrame
>>import pandas as pd
>>df = pd.read_table('company_information_utf8.txt')
>>df.to_csv('text.csv')
3、这时候把数据读到了 text.csv,csv编码方式为utf8,直接打开为乱码,需要在excel中“数据-》自文件-》编码方式选择utf-8,-》选择逗号分隔......”
>>rusult = pd.read_csv('test.csv') 或者 >>pd.read_table('test.csv',nrows=5)
都可以读出数据。
其中 rusult 为 DataFrame 类型,
在rusult中索引:
>> name = rusult['企业名称']
这时候的 name 为 Series类型。
>>print name[0] #这样就可以显示出这列数据了,是中文也没有问题啊,
>>name[0] 打印出来为编码,print一下,就可以看见汉字了
以下是对Series类型元素的修改,留个疑问,修改后的warning是让去读pandas文档,不知道有什么问题存在
>>print name[0]
淮北柒柒包装制品有限公司
>>name[0]='吹牛公司'
-c:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
>>print name[0]
吹牛公司
>>type(name[0])
Out[70]: str