数据小站
数据科学成长之路

python常见问题

1.pandas读取csv异常或警告 DtypeWarning:Specify dtype option on import or set low_memory=False.
data=pd.read_csv(dataPath,encoding=’ANSI’)
sys:1: DtypeWarning: Columns (3,4) have mixed types. Specify dtype option on import or set low_memory=False.
解决办法:data=pd.read_csv(dataPath,encoding=’ANSI’,low_memory=False)

2.matplotlib绘制写中文

pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
用中文时,会出现负号不能正常显示
plt.rcParams[‘axes.unicode_minus’]=False
用来显示负号

mac端显示中文: plt.rcParams[‘font.sans-serif’] = [‘Arial Unicode MS’]

3.numpy/pandas 数字科学记数显示

np.set_printoptions(suppress=True) 输出不用科学计数


pandas 和 numpy 的set_option
设置显示的规则
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.set_printoptions.html
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html
np.set_printoptions(suppress=True,threshold=6,edgeitems =6)
pd.set_option(‘precision’,10,’max_columns’,4 )

5.Warning: (1366, “Incorrect string value: ” for column ‘VARIABLE_VALUE’ )

用sqlalchemy,使用pymysql驱动时报警,不影响正常写入数据库

原因是当sqlalchemy写mysql时,使用mysqldb驱动,使用mysqldb驱动时,需要添加pymysql.install_as_MySQLdb()才生效

import pymysql
import sqlalchemy
from sqlalchemy import create_engine
pymysql.install_as_MySQLdb()
create_engine(str(r"mysql+mysqldb://root:" + 'passwd' + "@127.0.0.1/bwdatabase?charset=utf8")

运行后能正常写入数据库,但是会提示警告,去掉警告,需要用新的依赖包

pip install mysql-connector

mysql+mysqlconnector://root:123@localhost/db_test ,将mysqldb改成 mysqlconnector

6.浮点数计算精度问题

print(0.1+0.1+0.1-0.3) 结果不等于0,计算的结果应该是0,但是显示的结果不是0,而是无限接近于0,这是由于浮点数在计算机硬件中存储,无法精确表示造成

如果需要精确的小数运算时,可以使用Decimal 数据类型,解决精度不够的问题

赞(0) 打赏
未经允许不得转载:技术文档分享 » python常见问题

评论 抢沙发