《趣学python》摘

查看dataframe各列缺失值个数的方法:
法一:
def missingva(x):
    return sum(x.isnull())

df.apply(missingva,axis=0)

Out[39]: 
序号            0
Root Id       0
客户名称          0
客户类型          0
.
.
.

单数(拆分)        0
业绩(拆分)        0
网站个数          0
端口         1335
dtype: int64


法二:

for x in range(len(df.columns)):
    print("'"+str(df.columns[x])+"'"+'列的缺失值个数:',sum(df.iloc[:,x].isnull()))


'序号'列的缺失值个数: 0
'Root Id'列的缺失值个数: 0
'客户名称'列的缺失值个数: 0
'客户类型'列的缺失值个数: 0
'成交金额'列的缺失值个数: 0
'CTM业绩'列的缺失值个数: 0
'成交类型'列的缺失值个数: 0
'成交面积'列的缺失值个数: 0
'来电客户电话'列的缺失值个数: 0
.
.
.

'来电来源'列的缺失值个数: 0
'成交网站'列的缺失值个数: 0
'成交渠道'列的缺失值个数: 0
'月份'列的缺失值个数: 0
'单数(拆分)'列的缺失值个数: 0
'业绩(拆分)'列的缺失值个数: 0
'网站个数'列的缺失值个数: 0
'端口'列的缺失值个数: 1335

 

 

修改文件名:
import os
os.rename(r'd:\Users\zhanggl21\Desktop\新建文本文档.txt',r'd:\Users\zhanggl21\Desktop\8.txt')

os.rename(r'd:\Users\zhanggl21\Desktop\88.xlsx',r'd:\Users\zhanggl21\Desktop\100.xlsx')

os.rename(r'd:\Users\zhanggl21\Desktop\99.docx',r'd:\Users\zhanggl21\Desktop\100.docx')

os.rename(r'd:\Users\zhanggl21\Desktop\58eb438b77f0b.jpg',r'd:\Users\zhanggl21\Desktop\100.jpg')

在函数体内的变量在函数执行结束后就不能再用了,因为它只在函数中存在。在编写程序的世界里,这被称为“作用域”。


函数的组成部分--一个函数有三个部分组成:名字、参数,还有函数体。


类和对象:
在计算机的世界里,“对象”这个概念很重要。对象是程序组织代码的方法,它把复杂的想法拆分开来使其容易被理解。哺乳动物、动物
、活动、不动,这些都是给事物分类的方法。
如果一个类是另一个类家族的一部分,那么它是另一个类的“孩子”,另一个类是它的“父亲”。一个类可以同时是另外一些类的孩子和
父亲。
要告诉python一个类是另一个类的孩子,就在新类的名字后用括号加上父亲类(以下简称父类)的名字,就像这样:
>>>class Inanimate(Things):
    pass

>>>class Animate(Things):
    pass

这样,我们就创建了一个叫Inanimate的类并通过class Inanimate(Things)来告诉Python它的父类是Things。然后我们创建了叫Animate
的类并通过class Animate(Things)告诉python它的父类也是Things.


增加属于类的对象:
即在类里加入成员。
假设有一个长颈鹿,它的名字叫Reginald.我们知道它属于Giraffes类,但要用什么样的程序术语来描述一只叫Reginald的长颈鹿呢?我
们称Reginald是Giraffe类的一个对象(对象,object;还可以称它为“实例”,instance)。我们用下面这段代码把Reginald“引入”到
Python中:
>>>Reginald=Giraffes()
这段代码告诉python创建一个属于Giraffes类的对象,并把它赋值给变量Reginald.像用函数一样,类的名字后面要用括号。
要想让对象有用,在创建类的时候我们还要定义函数,这样这个类的对象就可以使用这些函数了。如果不在类的定义之后立刻使用pass关
键字,我们也可以增加一些函数定义。

定义类中的函数:
我们用和定义其它函数同样的方式来定义与某个类相关联的函数,不同的地方只是要在类的定义之下缩进。  例如,下面是一个没有与任
何类关联的普通函数:
>>>def this_is_a_normal_function():
    print('I am a normal function')
下面是两个属于类的函数:
>>>class ThisIsMySillyClass:
    def this_is_a_class_function():
        print('I am a class function')
    def this_is_also_a_class_function():
        print('I am also a class function. See?')

用函数来表示类的特征:
我们可以给每一个类增加一些“特征”,来描述它是什么和它能做什么。“特征”就是一个类家族中的所有成员(还有它的子类)共同的
特点。 可以把这些特征想象成是一些动作,或者说函数,也就是那个类的对象能做的事情。
每个类都能使用它父类的特征(函数)。这意味着你不需要把一个类写得很复杂。你可以把函数放在这一特征最早出现的父类中。(这是
个让你的类保持简单和容易理解的好办法。)


通常,程序员会先创建类,而其中的函数什么也不做。先通过这种方式找出这个类应该做的事情,而不是马上进入到每个函数的细节中去


为什么使用类和对象:
使用了对象和类,我们可以调用(或者说运行)对象属于的类和它的父类所提供的函数。我们用点运算符“.”和函数的名字来调用对象
的函数。例如要让长颈鹿Reginald移动或者吃东西,我们可以这样调用函数:
>>>Reginald=Giraffes()
>>>reginald.move()
>>>reginald.eat_leaves_from_trees()
我们假设Reginald有一个叫Harold的长颈鹿朋友。让我们创建另一个叫harold的Giraffes对象:
>>>harold=Giraffes()
因为我们使用了对象和类,我们可以通过运行move函数来准确地告诉python我们所指的到底是哪一只长颈鹿。例如,如果我们想让Harold
移动而Reginald则留在原地,我们可以用harold对象来调用move函数,像这样:
>>>harold.move() #在这个例子中,只有Harold会移动。


删除列表内嵌套的列表:
>>>alst=list(range(8))
>>>alst
Out[6]: [0, 1, 2, 3, 4, 5, 6, 7]

>>>alst.append([11,19])
>>>alst
Out[8]: [0, 1, 2, 3, 4, 5, 6, 7, [11, 19]]


for x in alst:
    if type(x)==list:
        del alst[alst.index(x)]

print(alst)
out:
[0, 1, 2, 3, 4, 5, 6, 7]


#删除列表中所有指定元素
while 6 in alst:
    alst.remove(6)

while alst.count(6)>0:
    alst.remove(6)

 

bool函数:
bool函数只有一个参数,并根据这个参数的值返回真或假。当对数字使用bool函数时,0返回False,任何其它值都返回True.
>>bool(9)
Out[5]: True

>>bool(0)
Out[6]: False

当对其它类型的值使用bool时,比如字符串,对于没有值的字符串(也就是None或者空字符串)返回False,否则返回True.
>>print(bool(None))
out:False

>>print(bool('a'))
out:True

bool函数对于空的列表、元组和字典返回False,否则就返回True.

在循环中len函数尤其有用,我们可以用下面的代码来显示列表中元素的索引位置:
alst=list('dsahrt')
length=len(alst)
for x in range(0,length):
    print('at index %s is %s' %(x,alst[x]))

out:
at index 0 is d
at index 1 is s
at index 2 is a
at index 3 is h
at index 4 is r
at index 5 is t


list(range(40,20,-2))
Out[35]: [40, 38, 36, 34, 32, 30, 28, 26, 24, 22]

random.randint来随机挑选一个数字:
random.randint(20,30)
Out[37]: 27

random.choice从列表中随机选取一个元素:
如果你想从一个列表中随机选取一个元素,而不是从一个给定的范围里,那么你可以使用choice.
alst=list('jeodkgye')
random.choice(alst)
Out[39]: 'e'


random.shuffle来给列表洗牌:
alst
Out[45]: ['e', 'o', 'y', 'e', 'd', 'j', 'g', 'k']
random.shuffle(alst)
alst    
Out[47]: ['j', 'k', 'g', 'o', 'y', 'e', 'e', 'd']

time.sleep:
如果你想推迟或者让你的程序慢下来时,可以用sleep函数。
每隔一秒打印出每一个1--60的数字:
for x in range(10):
    print(x)
    time.sleep(2)


0
1
2
3
4
5
6
7
8
9
这样在显示每个数字时都有一个延迟。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值