首页 > 其他分享 >pandas基础

pandas基础

时间:2023-12-18 18:22:06浏览次数:29  
标签:返回 df 基础 DataFrame col1 pd 数据 pandas

pandas基础

df:任意的Pandas DataFrame对象
s:任意的Pandas Series对象

读写文件

读取文件

# 读入文件

filename = ""
url=""
json_string = ""
pd.read_csv(filename); 						 # 从CSV文件导入数据
pd.read_table(filename); 					 # 从限定分隔符的文本文件导入数据
pd.read_excel(filename); 					 # 从Excel文件导入数据
pd.read_sql(query, connection_object);		  # 从SQL表/库导入数据
pd.read_json(json_string); 					 # 从JSON格式的字符串导入数据
pd.read_html(url); 							# 解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard(); 						# 从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict); 						# 从字典对象导入数据,Key是列名,Value是数据
# ...

导出数据

df.to_csv(filename)  # 导出数据到CSV文件
df.to_excel(filename)  # 导出数据到Excel文件
df.to_sql(table_name, connection_object)  # 导出数据到SQL表
df.to_json(filename)  # 以Json格式导出数据到文本文件

查看数据


df.head(n) 		# 查看DataFrame对象的前n行
df.tail(n) 		# 查看DataFrame对象的最后n行
df.shape()		# 查看行数和列数
df.info()# 查看索引、数据类型和内存信息
df.describe()	# 查看数值型列的汇总统计
s.value_counts(dropna=False)# 查看Series对象的唯一值和计数
df.apply(pd.Series.value_counts)# 查看DataFrame对象中每一列的唯一值和计数

数据切片

df[col] 	# 根据列名,并以Series的形式返回列
df[[col1, col2]]# 以DataFrame形式返回多列
s.iloc[0]	# 按位置选取数据
s.loc['index_one']	# 按索引选取数据
df.iloc[0,:]# 返回第一行
df.iloc[0,0]# 返回第一列的第一个元素

数据清洗

df.columns = ['a', 'b', 'c']      # 重命名列名
pd.isnull()  # 检查DataFrame对象中的空值,并返回一个Boolean数组
pd.notnull()  # 检查DataFrame对象中的非空值,并返回一个Boolean数组
df.dropna()  # 删除所有包含空值的行
df.dropna(axis=1)  # 删除所有包含空值的列
df.dropna(axis=1, thresh=n)  # 删除所有小于n个非空值的行
df.fillna(x)  # 用x替换DataFrame对象中所有的空值
s.astype(float)  # 将Series中的数据类型更改为float类型
s.replace(1, 'one')  # 用‘one’代替所有等于1的值
s.replace([1, 3], ['one', 'three'])  # 用'one'代替1,用'three'代替3
df.rename(columns=lambda x: x + 1)  # 批量更改列名
df.rename(columns={'old_name': 'new_ name'})  # 选择性更改列名
df.set_index('column_one')  # 更改索引列
df.rename(index=lambda x: x + 1)  # 批量重命名索引

数据处理

df[df[col] > 0.5]# 选择col列的值大于0.5的行
df.sort_values(col1)# 按照列col1排序数据,默认升序排列
df.sort_values(col2, ascending=False)# 按照列col1降序排列数据
df.sort_values([col1,col2], ascending=[True,False])# 先按列col1升序排列,后按col2降序排列数据
df.groupby(col)# 返回一个按列col进行分组的Groupby对象
df.groupby([col1,col2])# 返回一个按多列进行分组的Groupby对象
df.groupby(col1)[col2]# 返回按列col1进行分组后,列col2的均值
df.pivot_table(index=col1, values=[col2,col3], aggfunc=max)# 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
df.groupby(col1).agg(np.mean)# 返回按列col1分组的所有列的均值
data.apply(np.mean)# 对DataFrame中的每一列应用函数np.mean
data.apply(np.max,axis=1)# 对DataFrame中的每一行应用函数np.max

数据合并

df1.append(df2)  # 将df2中的行添加到df1的尾部
df.concat([df1, df2], axis=1)  # 将df2中的列添加到df1的尾部
df1.join(df2, on=col1, how='inner')  # 对df1的列和df2的列执行SQL形式的join
pd.merge(df1, df2, on='key')

数据统计

df.describe()  # 查看数据值列的汇总统计
df.mean()  # 返回所有列的均值
df.corr()  # 返回列与列之间的相关系数
df.count()  # 返回每一列中的非空值的个数
df.max()  # 返回每一列的最大值
df.min()  # 返回每一列的最小值
df.median()  # 返回每一列的中位数
df.std()  # 返回每一列的标准差

标签:返回,df,基础,DataFrame,col1,pd,数据,pandas
From: https://www.cnblogs.com/lmq886/p/17911878.html

相关文章

  • python123——numpy、scipy、pandas、matplotlib的读书报告
     一、函数的基本用法numpyNumPy(NumericalPython)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nestedliststructure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的......
  • (三十四)C#编程基础复习——C#命名空间(namespace)
    在C#中,可以将命名空间看做是一个范围,用来标注命名空间成员的归属,一个命名空间中类与另一个命名空间中同名的类互不冲突,但在同一个命名空间中类的名称必须是唯一的。举个简单的例子,在一个简单的C#程序中,假如我们要输出某些数据,就需要用System.Console.WriteLine(),其中System就是......
  • JavaWeb - Day09 - Mybatis - 基础操作、XML映射文件、动态SQL
    01.Mybatis-基础操作-环境准备需求需求说明:根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。通过分析以上的页面原型和需求,我们确定了功能列表:查询根据主键ID查询条件查询新增更新删除根据主键ID删除根据......
  • 通过 Sysbench 在低配置低数据基础上分别压测 MySQL 和 TiDB,实际结果 TiDB 出乎我的想
    作者:tidb菜鸟一只背景最近要上一个新项目,原来提供的是一个主从mysql数据库,两台16C64G的主机(还有个预发环境也是mysql主从,2个4C8G主机),感觉不是很靠谱,所以想要切换成tidb,所以对两边进行了压测(包括预发),两边磁盘都是垃圾机械盘,性能不说了,但是两边都垃圾,对比数据还是比较靠谱的。......
  • (三十三)C#编程基础复习——C#接口(interface)
    接口可以看做是一个约定,其中定义了类或结构体继承接口后需要实现功能,接口的特点如下:接口是一个引用类型,通过接口可以实现多重继承;接口中只能声明“抽象”成员,所以不能直接对接口进行实例化;接口中可以包含方法、属性、事件、索引器等成员;接口名称一般习惯使用字母“I”作为开......
  • HTML表格基础
    HTML表格基础一、表格相关标签<table></table>:表格相关的内容都需要包含在该标签内。<tr></tr> :tablerow的缩写,创建一行。<td></td>:tabledata的缩写,创建一行中的一列。<th></th>:tablehead的缩写,类似<td></td>,创建一行中的一列,用于表头的标题内容。<cap......
  • 神经网络优化篇:机器学习基础(Basic Recipe for Machine Learning)
    机器学习基础下图就是在训练神经网络用到的基本方法:(尝试这些方法,可能有用,可能没用)这是在训练神经网络时用到地基本方法,初始模型训练完成后,首先要知道算法的偏差高不高,如果偏差较高,试着评估训练集或训练数据的性能。如果偏差的确很高,甚至无法拟合训练集,那么要做的就是选择一个新......
  • Argo Rollouts TrafficRouting结合Istio进行Canary流量管理基础
    ArgoRolloutsTrafficRouting概述流量治理技术实现如下:1.按百分比进行流量管理(即5%的流量应流向新版本,其余流量流向稳定版本)2.基于标头的路由(即将带有特定标头的请求发送到新版本)3.镜像流量,其中所有流量都被复制并并行发送到新版本(但响应被忽略)TrafficRouting配置api......
  • 【scikit-learn基础】--『预处理』之 正则化
    数据的预处理是数据分析,或者机器学习训练前的重要步骤。通过数据预处理,可以提高数据质量,处理数据的缺失值、异常值和重复值等问题,增加数据的准确性和可靠性整合不同数据,数据的来源和结构可能多种多样,分析和训练前要整合成一个数据集提高数据性能,对数据的值进行变换,规约等(比如......
  • cesium.js入门基础教程四(事件)
    事件简介Cesium中大的事件按照类型进行分类,可以分为如下几种:鼠标键盘事件相机事件数据加载事件场景加载事件 按照事件的使用方式进行分类,可以分为如下两种:创建事件处理器Handler并指定事件触发类型定义事件,如与鼠标键盘事件相关的屏幕空间事件处理器ScreenSpaceEventH......