Python常用知识点总结!

本文总结了一些常用的python用法,会持续更新!相关参考链接已经放在对应的部分,如有侵权请联系删除,感谢~

一.入门

(一)基础类:

1.计算:

//取整数

%取余数

统计数量:

len(set(data))

2.print(%用法和format用法):

python print(%用法和format用法)_print(%)_wjqhit的博客-CSDN博客

3.字符串

(1)字符串匹配:

判断00开头的股票代码:

 

def get_symbol(security): if security[0] == '6': return security + '.SH' elif security[0:2] == '00': return security + '.SZ' elif security[0:2] == '30': return security + '.SZ' else: return 'market_other'

(2)字符串转换为变量名:

【Python】如何将字符串作为变量名_python字符串变成变量_兔子爱读书的博客-CSDN博客

如何在 Python 中将字符串转换为变量名

4.函数

(1)单输入多输出函数,返回对象为tuple
 

def fun(x): return f1(x),f2(x),f3(x),f4(x) type(fun) # function a = pd.Series([1,2,3,4,5,6]) type(fun(a)) # tuple

(2)变量名、函数注释

Python中变量名后加冒号“:”以及函数后面的箭头“->”含义_python -> _Dust_Evc的博客-CSDN博客

5.排序

对list排序

降序a.sort(reverse = True)

升序a.sort(reverse = False)(默认情况)

sort ()与 sorted() 区别:

1.sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。

2.list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

3.sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)

6.类Class

Python类的定义和使用_python 类_ζ小菜鸡的博客-CSDN博客

7.包管理

python安装指定版本的包_P@ssW0rd的博客-CSDN博客

安装特定版本的包

pip install pandas==0.24

使用清华源

pip install pandas==0.24 -i https://pypi.tuna.tsinghua.edu.cn/simple

8.round函数

可用于四舍五入

round(1.41401,3) # 1.414

9.分位数

 

# numpy 10,50,90分位数 np.percentile(data, [10, 50, 90]) # pandas 10,50,90分位数 data['col'].quantile([0.1,0.5,0.9])

python中numpy, pandas, pyspark计算分位数的方法汇总

10.相关系数

 

np.corrcoef(series1,series2)#含有nan值时会输出nan series1.corr(series2)#可以含nan值

(二)时间类:

1.strftime函数用法:

Python关于strftime函数详细解析 附实战代码_strftime函数python_码农研究僧的博客-CSDN博客

2.strptime函数用法:

python中strftime和strptime有什么区别 - 编程语言 - 亿速云

(三)画图类:

1.直方图

 

data = np.random.normal(170, 10, 250) plt.hist(data) plt.show()

(四)报错:

Python报错:AttributeError_逸凌Time的博客-CSDN博客

构建pd.DataFrame时索引报错

已解决ValueError: If using all scalar values, you must pass an index_袁袁袁袁满的博客-CSDN博客

A value is trying to be set on a copy of a slice from a DataFrame

Python填坑日记:如何解决“A value is trying to be set on a copy of a slice from a DataFrame ”的问题

二.Numpy

ndarray、series、dataframe互相转化

python的ndarray、series和dataframe类型转化_series转化为ndarray_酸奶奶昔的博客-CSDN博客

(一)np.array

1.创建时定义数据类型

创建np.array可以定义数据类型

data = np.array([1,2,3,4] , dtype = object)

(二)随机数

numpy产生随机数的常用方法总结_numpy生成随机数_科特君的博客-CSDN博客

1. 0-1均匀分布

np.random.rand(d0, d1, …, dn)

其中d0, d1, …, dn表示形状,如:

np.random.rand(3,2)

or

numpy.random.random(size=None)

作用: 返回从[0, 1)之间均匀抽样的数组,size指定形状。

参数:

size: int型或int型的元组,如果不提供则返回一个服从该分布的随机数

返回值: float型或者float型的ndarray对象

numpy.random.random((3,2))

以上两种方法只是参数不同

2.一般均匀分布

np.random.uniform(low=0.0, high=1.0, size=None)

low,high表示均匀分布的区间端点,size为int型或者int型的元组,表示形状,如:

np.random.uniform(1, 10, (3, 2))

3.离散均匀分布

np.random.randint(low, high=None, size=None, dtype=int)

作用: 返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。

参数:

low, high: int型,指定抽样区间[low, high)。

size: int型或int型的元组,指定形状。

dypte: 可选参数,指定数据类型,比如int,int64等,默认是np.int。

返回值: 如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。

4.标准正态分布

np.random.randn(d0, d1, …, dn)

d0, d1, …, dn表示形状

5.一般正态分布

np.random.normal(loc=0.0, scale=1.0, size=None)

loc表示均值,scale表示标准差,size为int型或者int型的元组,表示形状,如:

np.random.normal(0, 1, (3, 2))

6.从给定的一维数组中生成一个随机样本

np.random.choice(a, size=None, replace=True, p=None)

参数:

a: 1维数组或int。如果是ndarray,则从其元素中生成一个随机样本。如果是一个int型,则生成的随机样本就是np.arange(a)。

size: int型或者int型的元组,指定了数组的形状。如果不提供size,在这种情况下将返回单个值。

replace: 布尔值,可选。样品是否有更换

p: 一维数组类,可选。与a中每个条目相关的概率。如果没有给出,样本假设a中所有条目为均匀分布。

返回值: 返回随机项。

(三)时间

时间日期(datetime64)和时间增量(datedelta64)_从零开始20220316的博客-CSDN博客

三.Pandas

没有数据时构造数据

(一)公共方法:

常用设置

好习惯!pandas 8 个常用的 option 设置_Python数据之道的博客-CSDN博客

Pandas数据挖掘与分析时的常用方法_None_output_df

1.len()方法

求series的长度或df的行数

2.loc与iloc方法:

series与df都可以用

loc必须跟index对应,iloc跟位置对应

3.shift方法:

只有pd.Series和pd.DataFrame才有shift方法,shift(1)表示向下移动1单位

4.head方法:

?pd.core.series.Series.head

head(2)取前两行

5.MultiIndex多重索引

MultiIndex DataFrame多重索引的引用方法_dataframe multiindex_Jiewi_W的博客-CSDN博客

6.nunique()方法

series.nunique()返回series对象所有不重复值的个数

dataframe.nunique()返回每一列不重复值的个数,返回类型为series

7.窗口函数

Python Pandas窗口函数

(二)pd.Series

Series是带标签的一维数组,可存储整数、浮点数、字符串、Python对象等类型的数据

1.pd.Series用法:(包括声明方法,index,name等参数)

python函数:pd.Series()_小小白2333的博客-CSDN博客

创建pd.Series的方法. pd.Series函数详解

数据结构简介 | Pandas

2.pd.Series修改索引:

series.reset_index()

or

series.reset_index(inplace = True, drop = True)(改变索引需要把之前的丢了,否则之前的索引会变成新的列)

3.pd.Series修改列名:

series.rename('新名字', inplace = True)

4.pd.Series转化为list:

series.tolist()

or

series.to_list()

5.pd.Series转化为pd.DataFrame:

(1)pd.DataFrame(pd.Series):
(2)pd.Series.to_frame()

6.unique()方法和nunique()方法:

series.unique()返回series对象所有不重复的值

series.nunique()返回series对象所有不重复值的个数

7.apply方法:

将一个函数作用于Series的每一个元素上,并返回一个新的Series。

详解pandas.Series.apply()(应用函数到序列)函数使用方法 - Python技术站

 

s1 = pd.Series(['1','2','3','4','5']) s2 = s1.apply(lambda x: int(x) + 1) print(s2)

8.数据分箱:

pd.qcut()数据分箱_一尺荷叶的博客-CSDN博客

(三)pd.DataFrame

1.index索引

(1)重设索引:

df.reset_index(inplace=False , drop=False) drop默认False

(2)设置某一列为索引:

df.set_index('column_name' , inplace=False , drop=True) drop默认Ture

drop针对被操作的索引或列,为True表示不保留

(3)MultiIndex多重索引:

设置:df.set_index(['column_name_1','column_name_2'] , inplace=False , drop=True) drop默认Ture

MultiIndex DataFrame多重索引的引用方法_dataframe multiindex_Jiewi_W的博客-CSDN博客

多重索引有重复时不能groupby,需要再把不完全相同的一列设为index后,进行groupby

2.column列

(1)pd.DataFrame修改列名:

Pandas中对DataFrame列名进行重命名_dataframe列名重命名_铁盒薄荷糖的博客-CSDN博客

df.rename(columns = {原列名:新列名} , inplace = True)

Dataframe修改列名_Zze_Cqupt的博客-CSDN博客

(2)查看某个列名对应第几列

df.columns.tolist().index("column_name")

or

df.columns.to_list().index("column_name")

3.groupby

groupby函数用法:

Python groupby函数图文详解_python_脚本之家

Python pandas.core.groupby.GroupBy.mean用法及代码示例 - 纯净天空

python中groupby函数详解(非常容易懂) - The-Chosen-One - 博客园

分组聚合运算

利用Python进行数据分析:数据聚合与分组运算(基于DataFrame)_python dataframe 聚合_黑洞拿铁的博客-CSDN博客

【DS with Python】DataFrame的合并、分组聚合与数据透视表_dataframe分组聚合_Mart_inn的博客-CSDN博客

(1)unique方法:

取出不同的值,存为np.ndarray

df.groupby('code')['lastPx'].unique()

(2)agg方法:

可以取多个函数进行选择

df.groupby('code')['lastPx'].agg(function_1,function_2)

df.groupby('code')[['column1','column2']].agg(function_1,function_2)

python pandas中的agg函数用法_python_脚本之家

(3)apply调用多个函数

只能通过自定义f实现,无法像agg一样聚合

关于python:将多个函数应用于多个groupby列 | 码农家园

注意!有groupby、rolling的apply和没有groupby、rolling的apply是两个函数!别混淆

series.apply(np.mean)不能求series的均值,只会让单个元素各自为一组

(4)apply和transform的比较:

python中apply和transform的比较 - python基础教程

apply和transform的不同_apply和transform的区别_weixin_42842108的博客-CSDN博客

python中apply和transform有什么区别 | Fiime分享

(5)map方法:

pandas 常用函数_df.map_塞上江南o的博客-CSDN博客

四.os

os.path.normpath()方法:

用于规范化指定的路径。在路径规范化过程中,所有冗余分隔符和up-level引用均折叠。

os.path.normpath()_Wanderer001的博客-CSDN博客

os.path.basename()方法:

作用是获取路径中的文件名或目录名。当我们需要获取一个文件或目录的名称时,可以使用该方法。

该方法的语法如下:

os.path.basename(path)

其中,path 表示要获取名称的路径。该方法返回路径中的最后一个部分,即文件名或目录名。

在 Python 中 os.path.basename() 方法的作用是什么

os.makedirs()方法

用于递归创建目录。

Python os.makedirs() 方法 | 菜鸟教程

五.scipy

(一)SciPy库介绍:

SciPy是一个高级的科学计算库。

SciPy包含线性代数,优化,集成和统计的模块,SciPy包包含致力于科学计算中常见问题的各个工具箱。

(二)SciPy库功能:

主要功能是建立在NumPy上,从而它的数组大量的使用了NumPy的。

它的不同子模块相应于不同的应用。像插值,积分,优化,图像处理,特殊函数等等。

(三)实现原理:

它通过其特定子模块提供有效的数值例程,并作为数字积分、优化和其他例程。

SciPy的所有子模块中的功能都有详细的说明 ——又是一个SciPy非常有帮助的点。

六.glob库

glob.glob(path)

参数:

path:文件路径匹配规则,可以是绝对路径,也可以是相对路径

返回:

所有匹配的文件路径列表

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值