常常被人忽略的python基础语法

python 编写常量板块

import sys

class _CONSTANT:
    class ConstantError(TypeError) : pass

    def __setattr__(self, key, value):
        if key in self.__dict__.keys():
            raise(self.ConstantError, "常量重新赋值错误!")
        self.__dict__[key] = value

sys.modules[__name__] = _CONSTANT()
#使用以下方式调用CONSTANT这个“常量”:
CONSTANT = _CONSTANT()
CONSTANT.TEST = 'test'
print(CONSTANT.TEST)
CONSTANT.TEST = 'test111'
print(CONSTANT.TEST)

使用更高精度(超过17位小数)

from decimal import *
print(getcontext())
getcontext().prec = 50
print(Decimal(1)/Decimal(9))
print(Decimal(1)/Decimal(19))
print(float(Decimal(1)/Decimal(19)))

 四舍五入

##.5时取相邻的偶数
round(1.5) #2
round(2.5) #2 
rount(2.675) #3
##
##5左侧是奇数舍去,偶数向上取整
round(2.635, 2) #2.63
round(2.645, 2) #2.65
round(2.655, 2) #2.65
round(2.665, 2) #2.67
round(2.675, 2) #2.67
##
## ceil向上取整,floor向下取整
from math import ceil, floor
round(2.5) #2
ceil(2.5) #3
floor(2.5) #2
round(2.3) #2
ceil(2.3) #3
floor(2.3) #2

 用complex创建复数

print(complex(1))			# 只有实部1
print(complex(1, 2))		# 实部为1,虚部为2
print(complex('1+2j'))		# 实部为1,虚部为2

 迭代器

l = [1, 2, 3]
iterName=iter(l)
print(iterName)
print(next(iterName))
print(next(iterName))
print(next(iterName))
print(next(iterName))

数据清洗

import pandas as pd
#检查是否有重复数据
data=pd.read_csv('201711-2.csv', encoding='gbk')
for isDuplicate in data.duplicated():
    if isDuplicate==True:
        print(isDuplicate)
#检查空值
data.isnull()
#填充空值
data['IDNumber']=data['IDNumber'].fillna('123')
#去除左右两边的空格
data['CardNo']=data['CardNo'].map(str.strip)
#英文大小写转换
data['CardNo']=data['CardNo'].map(str.lower)
data['CardNo']=data['CardNo'].map(str.title)#首字母大写
data['CardNo']=data['CardNo'].map(str.upper)
#将日期型数据改成日期格式
data['CreateDateTime']=data['CreateDateTime'].fillna(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
data['CreateDateTime']=pd.to_datetime(data['CreateDateTime'])
#保存
data.to_csv('201711-2Clear.csv', encoding='gbk')

 

来源:《python 数据分析与可视化》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值