Python常用函数笔记汇总2

0.map映射函数

map函数的基本语法是map(func, seq),其含义指的是:对后面可迭代序列中的每个元素执行前面的函数func的功能,最终获取到一个新的序列。返回的是一个可迭代器,如果想返回列表,可以使用list()进行处理

a = [1, -2, 3, -4, 5]
# 1.使用Python内置函数
print('原数据:\n', a)
map(abs, a)
list(map(abs, a))

在这里插入图片描述

# 2.使用自定义函数
def func(x):
    return x*x
list(map(func, a))

在这里插入图片描述

1.分组汇总groupby

在这里插入图片描述

2.计算空值
# py计算空值
data.isnull().sum(axis=0)
data.notnull().sum(axis=0)

# py去重计数
data_op['id_num_op'].value_counts().size
data_op['id_num_op'].size

在这里插入图片描述

3.保留两位小数
# predict_proba保留两位小数
gnb = GaussianNB()
pre = gnb.fit(X_train,y_train).predict(X_test)

model = gnb.fit(X_train,y_train)
pro = model.predict_proba(X_test)
pd.DataFrame(pro).applymap(lambda x:np.round(x,2))      #概率值保留两位小数
4.数据表随机取数

np.random.seed(123)
data_1 = data.take(np.random.permutation(len(data))[:100])

5.pickle文件的保存、加载与使用
import pickle as pickle
# 保存
model_file = open(r'clf.model', 'wb')
pickle.dump(clf, model_file)
model_file.close()
# 加载
model_load_file = open(r'clf.model', 'rb')
model_load = pickle.load(model_load_file)
model_load_file.close()
# 预测
test_est_load = model_load.predict(test_data)
pd.crosstab(test_est_load,test_est)

问题:python在线pip无法安装package,如执行pip install jieba,显示红色错误:read time out

原因分析:连接服务器,网速慢,文件大,导致下载连接超时,无法完成下载。

添加参数:–default-timeout=100,执行命令为:pip --default-timeout=100 install jieba
或者 pip --default-timeout=1000 install jieba

6.时间的表达:datetime和timedelta
  • 基本上常用的类: datetime和timedelta两个。

  • 参数可以是days ,hours ,minutes ,seconds ,microseconds,如果是负数就是向前多少时间

    datetime可以查看:天数(day),小时数(hour),星期几(weekday())等
    timedelta可以查看:天数(days),秒数 (seconds)等

  • 每个类都有一些方法和属性可以查看具体的值.

# 天数
import datetime
d1 = datetime.datetime(2009, 3, 23)
d2 = datetime.datetime(2009, 10, 7)
dayCount = (d2 - d1).days
print(dayCount)

# 秒数
import datetime
starttime = datetime.datetime.now()
endtime = datetime.datetime.now()
res = (endtime - starttime).seconds
print(res)

# 时间相加
d1 = datetime.datetime.now()
d3 = d1 + datetime.timedelta(days=10)
print (d3.ctime())

在这里插入图片描述

7.dict_to_dataframe
import pandas as pd
data = {'a': 3000, 'b': 2000, 'a': 3000, 'c': 6000, 'd': 5000}
pd.DataFrame.from_dict(data,orient='index')     #默认去重
pd.DataFrame.from_dict(data,orient='index').T

在这里插入图片描述

8.类别转换数值
# 如用1来表示“好的”、“优质”,用-1来表示“坏的”、“差的”
data[data == u'好的'] = 1
data[data == u'优质'] = 1
data[data != 1] = -1
data2 = data.as_matrix().astype(int)
9.查看第三方包的版本

a.命令行直接输入pip list 或 conda list

b.运用pandas查看包的版本

import pandas as pd
pd.show_versions()

c.导入第三方包,利用包的内置方法__version__查看

import numpy as np
np.__version__
10.zip函数

zip([iterable,…]) # iterable是一个或者多个可迭代器
返回的是一个zip对象,如果需要展示成列表的形式,直接使用list方法展开;展开的结果是列表中嵌套元组的形式

# zip中可以接受列表、元组、字符串等形式
print('原数据:\n', a)
zip(a)
list(zip(a))
list(zip(a, a))

在这里插入图片描述

# 不同类型进行zip
b = (1, 1, 1)
c = {'a', 'b', 'c', 'd'}
abc = list(zip(a, b, c))
abc
list(zip(*abc))  # 反zip过程

在这里插入图片描述

# 1.列表求和
z = []
for x1, x2 in zip(a, b):
    z.append(x1 + x2)

在这里插入图片描述

# 2.数据合并
z2 = []
for x1, x2 in zip(a, b):
    z2.append(str(x1) + 'abc' + str(x2))

在这里插入图片描述

11.reduce函数

reduce依次从sequence中取一个元素,和上一次调用function的结果做参数,再次调用function。

from functools import reduce
# 1.使用自定义函数
def func2(x, y):
    return x+y
print('原数据:\n', a)
reduce(func2, a)
sum(a)

在这里插入图片描述

# 2.使用匿名函数lambda
reduce(lambda x, y: x+y, a)

在这里插入图片描述

# 3.带有初始值,初始化值和序列中的第一个值执行func函数,将得到的结果作为下次的起始值
reduce(lambda x, y: x+y, a, 1)

在这里插入图片描述

12.filter函数

filter()函数用于过滤序列,过滤掉不符合条件的那些元素,返回符合条件的元素组成新列表。
序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回True的元素放到新列表中。

# 1.使用自定义函数,返回偶数
def func3(x):
    return x % 2 == 0
list(filter(func3, a))

在这里插入图片描述

# 2.使用匿名函数lambda
list(filter(lambda x: x % 2 == 0 and x > -3, a))

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值