1. Python数据处理的常用函数?
numpy,用来做多维数组对象ndarray(多维同类数据容器)的运算,之前在xx项目中用numpy做一些数据运算的工作。 NumPy(封装C)的方法比Python方法要快10到100倍,并且使用的内存也更少。
pandas,提供了高级数据结构(Series,DataFrame)和函数,用来处理表格和复杂数据,主要用它在数据清洗这一步。 Series:一种一维标签数组对象;DataFrame:实现表格化,提供复杂的索引函数,用于数据的重组、切块、切片、聚合、子集选择更为简单。数据处理主要用的就是pandas里面的函数。 缺失值: isnull(),dropna(),fillna() ;去重:drop_duplicates() ,处理某列:apply(), lambda函数 替换函数:replace(); 数据分箱:cut(),qcut(),联合数据集:pd.merge( df1,df2,on='key',how='inner' ); 拼接:concat(),数据切片:loc,iloc
matplotlib,用来数据可视化,在对处理好的数据我想简单看一下频数分布或者相关性之类的很轻松的可以画出图片。
sklearn,机器学习工具包,机器学习数据建模这部分用到,我经常用的模型有随机森林和xgb(引导面试官问这两者的区别)。分类:SVM、最近邻、随机森林、逻辑回归等· 回归:Lasso、岭回归等· 聚类:k-means、谱聚类等· 降维:PCA、特征选择、矩阵分解等· 模型选择:网格搜索、交叉验证、指标矩阵· 预处理:特征提取、正态化
scipy: 科学计算。
statsmodels:统计分析包,statsmodels更专注于统计推理,提供不确定性评价和p值参数。相反,scikit-learn更专注于预测。它所包含的模型如下: 回归模型:线性回归、通用线性模型、鲁棒线性模型、线性混合效应模型等· 方差分析(ANOVA)· 时间序列分析:AR、ARMA、ARIMA、VAR等模型· 非参数方法:核密度估计、核回归· 统计模型结果可视化
numpy和pandas的区别?
1. 数据类型
NumPy中有一个基本数据类型ndarray,是用于科学计算中处理大型数据集的基本结构。该结构是多维数组,支持基本的数学和统计操作。而Pandas中则提供两种数据类型:Series和DataFrame。Series是一种带标签的一维数组,只包含一种数据类型;DataFrame则是二维表格,可以包含多种数据类型。
2. 数据处理能力
Pandas具备更强大的数据处理能力,尤其擅长于针对数据中的行列进行加工、划分、筛选等操作。Pandas模块中有许多函数可以像SQL语句一样对数据进行筛选、排序、分组等处理操作,而NumPy则主要处理数学计算及一些通用操作,没有提供类似SQL语句一样的函数。
3. 数据源
NumPy主要针对大型数值计算的数据源,如数学、统计的矩阵运算;Pandas则面向更加广泛的数据源类型,包括CSV文件、Excel文件、SQL数据库、JSON格式、HTML形式的数据等。
pandas
https://www.cnblogs.com/yxhblogs/p/11026575.html
1. 时间格式:
df[''date"]数据类型为“object”,通过pd.to_datetime将该列数据转换为时间类型,即datetime
格式化:
df[
'date_formatted'
]
=
pd.to_datetime(df[
'date'
],
format
=
'%Y-%m-%d'
)
https://www.cnblogs.com/cgmcoding/p/13522038.html
提取时间日期中的部分信息:dt.date只提取日期部分
2.连接操作 pd.merge
- left:参与合并的左侧DataFrame;
- right:参与合并的右侧DataFrame;
- how:连接方式,有inner、left、right、outer,默认为inner;
- on:指的是用于连接的列索引名称,必须存在于左右两个DataFrame中,如果没有指定且其他参数也没有指定,则以两个DataFrame列名交集作为连接键;
pd.join() → 直接通过索引链接
Python数据分析实战【第三章】2.16-Pandas合并 merge、join【python】_Captain Franke的博客-CSDN博客
3. groupby
使用GroupBy()可以沿着任意轴进行分组,并将分组依据的键作为每组的组名,有3种用法:
- df.groupby( 'key' )
- df.groupby(key,axis=1) # 默认是横向分组(axis=0)
- df.groupby([key1,key2]
eg.
f=df.groupby(["班级","性别"])["成绩"].mean()
https://www.cnblogs.com/Cheryol/p/13442473.html
4. Pandas的count()与value_counts()区别
count计算各个特征在Age中的非N值出现的次数, alue_counts计算每一个特征出现的次数
groupby(‘A’)[‘B’].count(),统计的还是A的特征
groupby(‘A’)[‘B’].value_counts(),统计的是B的特征
Pandas的count()与value_counts()区别_pandas count_CristinaM的博客-CSDN博客
5. rank()
rank() 通过将平均排名分配到每个组打破平级关系。也就是说,如果有两组数值一样,那他们的排名将会被加在一起再除2
Pandas rank()函数排名的用法与解释_彻夜攻读的博客-CSDN博客
6. unique() nunique()
而unique()方法返回的是去重之后的不同值(distinct),而nunique()方法则直接放回不同值的个数(distinct .count):
nunique() 用于获取某列中所有唯一值的数量(统计每一列属性各自有多少个不同值)。
Pandas中的unique()和nunique()方法_追丰少年的博客-CSDN博客
7. 相同属性的文件合并
concat([df1,df2]): 适合对少量的文件进行合并
glob模块: 大量文件合并,效率得到提高
Python合并csv文件要怎么操作?Python如何合并csv文件? - 优草派
8. df.query()查询
Python笔记:query查询_python query_哈佛在等我呢的博客-CSDN博客
python.query()函数_python query_qq_39306047的博客-CSDN博客
9. reset_index()函数
数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引,使用索引重置生成一个新的DataFrame或Series,默认drop=False可以把原来的索引用作一列。
https://www.cnblogs.com/keye/p/11229863.html
10. python实现透视表
1. pivot_table:指定 索引列 和 数值列
Pandas的pivot_table函数(数据透视表)_今天多喝热水的博客-CSDN博客
2. stack(), unstack()
unstack()函数是根据列名进行分类,而stack函数是根据index标签进行了分类
unstack函数可以连续使用,对df进行转置
python——stack()和unstack()用法_世界码鲸鱼的博客-CSDN博客
11. .aggregate
df.aggregate(内置函数 or 自定义函数)
Python之数据聚合——aggregate()方法_aggregate python_·Jormungand的博客-CSDN博客
12. df.sort_values(by='列名')
新表=旧表.sort_values(‘排序字段’)
pandas——sort_values()用法及各参数含义_norah17的博客-CSDN博客
13. 数据分箱 cut,qcut函数
cut函数是按照数据的值进行分割:例子:按照数据值由小到大的顺序将数据分成4份,并且使每组值的范围大致相等。
qcut函数则是根据数据本身的数量来对数据进行分割:比如要把数据分为四份,则四段分别是数据的0-25%,25%-50%,50%-75%,75%-100%,每个间隔段里的元素个数都是相同的
https://www.cnblogs.com/hider/p/15494513.html?ivk_sa=1024320u
14. 数据切片 loc() iloc()
df.loc[]:是按标签名或者布尔数组进行行/列索引
df.iloc[]:是按标签位置(from 0 to length - 1)或者布尔数组进行索引
❤️pandas df.loc[] 与 df.iloc[] 详解及其区别,建议收藏❤️_小莫_xm的博客-CSDN博客
15. 深浅拷贝
浅拷贝:创建一个新对象,但它和原始对象共享内存中的一部分数据。这意味着在新对象上做出的更改会反映在原始对象上。浅拷贝适用于简单对象(例如列表、元组、字典、集合)。
深拷贝:创建一个新对象,并递归地复制原始对象及其所有子对象。深拷贝意味着在新对象和原始对象之间没有任何引用关系,即在新对象上做出的更改不会反映在原始对象上。深拷贝适用于复杂对象(例如嵌套列表、元组、字典、对象)。