Pandas常用函数总结(一)

      最近在参加Kaggle上的一个比赛,发现比赛用的数据地址以及标签都放在了CSV文件里面,然后就需要使用Pandas这个工具包,进行数据分析以及操作,以下就总结下里面常用到的一些基本函数使用方法。Pandas工具包最主要的作用就是数据分析,可以处理csv,excle,txt,等各种常见的数据类型。下面就以处理csv文件为例。

一、读取数据

这里随机创建了一个csv文件,表格内容如下所示,文件名为 exercise.CSV。一般就是使用read_csv()函数来读取CSV文件的内容,该函数使用灵活多变,有很多可选参数,什么都不加的情况,就是以第一行作为列索引,然后在最左列自动添加0,1,2,3.....作为行索引,此时NO.1,NO.2....也是作为值读入了。添加常用参数index_col之后,可以指定某一列作为行索引,这是再打印其值,发现NO.1,NO.2...就没有读入进来,只是充当了行索引。这只是其中的一个参数,还有header参数可以指定某一行作为列索引,默认情况都是以第一行,有的时候,要是没有表头,也可以使用header=None,这样就可以把一行也作为数据读入了。还有的情况是需要跳过一些行再进行读入,可以使用参数skiprows来进行设置。总之还有很多参数,有需要的可以去了解下官方文档

import pandas as pd
import pandas as pd

exercise_pd=pd.read_csv("exercise.CSV")
print(exercise_pd)
print(exercise_pd.values)
<<
 StudentID  Col1  Col2  Col3
0      NO.1    89    90    76
1      NO.2    53    98    79
2      NO.3    43    36    56
3      NO.4    49    88    66

[['NO.1' 89 90 76]
 ['NO.2' 53 98 79]
 ['NO.3' 43 36 56]
 ['NO.4' 49 88 66]]

#********************************************************************************
exercise_pd_2=pd.read_csv("exercise.CSV",index_col='StudentID')
print(exercise_pd_2)
print(exercise_pd_2.values)
<<
          Col1  Col2  Col3
StudentID                  
NO.1         89    90    76
NO.2         53    98    79
NO.3         43    36    56
NO.4         49    88    66

[[89 90 76]
 [53 98 79]
 [43 36 56]
 [49 88 66]]

二、loc和iloc的区别

这两个函数都是用来删选指定区域的数据,主要的区别有两点

2.1 .loc()是通过标签来读取数据 

      .iloc()则是以左上角的数据值作为原点(0, 0),然后通过坐标来读取数据,需要注意,这里的原点就是数字89所在的位置,因为读取数据的时候,表头和最左侧的StudentID都没有作为数据读入,但是我们Prtint的时候,为了方便查看结果,表头和最左侧的还是会显示出来的。

2.2 还有一个区别就是数据区间问题, .loc()数据读的都是闭区间,NO.1, NO.2, NO.3都读入

.iloc()则是左闭右开区间,只读入0,1,2

import pandas as pd

exercise_pd_2=pd.read_csv("exercise.CSV",index_col='StudentID')
a=exercise_pd_2.loc['NO.1':'NO.3','Col1':'Col3']
print(a)

<<
           Col1  Col2  Col3
StudentID                  
NO.1         89    90    76
NO.2         53    98    79
NO.3         43    36    56

#**********************************************************************
b=exercise_pd_2.iloc[0:3,0:3]
print(b)

<<
           Col1  Col2  Col3
StudentID                  
NO.1         89    90    76
NO.2         53    98    79
NO.3         43    36    56

 

 

PandasPython 中非常流行的数据处理库,主要用于数据清洗、分析和转换。它提供了个强大且易用的 `DataFrame` 结构以及其他辅助工具来简化数据操作。以下是 Pandas 常见的函数及其使用方法: ### 1. 创建 DataFrame #### a) 使用字典创建 ```python import pandas as pd data = {'姓名': ['张三', '李四'], '年龄': [28, 34]} df = pd.DataFrame(data) print(df) ``` #### b) 从外部文件加载 (CSV 文件为例) ```python # 读取 CSV 文件到 DataFrame df = pd.read_csv('path/to/file.csv') # 将 DataFrame 写入 CSV 文件 df.to_csv('new_file.csv', index=False) ``` --- ### 2. 查看数据信息 #### a) 显示前几行或后几行数据 ```python # 显示前5行,默认为5;可以指定更多行数 n=10 df.head() # 显示最后5行,默认为5;同样可以指定行数 df.tail() ``` #### b) 获取数据的基本统计描述 ```python # 描述包括计数、均值、标准差等统计量 df.describe(include='all') ``` #### c) 检查列的数据类型及非空值情况 ```python # 返回每列的数据类型 df.dtypes # 统计每个特征有多少个有效(非NA/null)观测值 df.count() ``` --- ### 3. 数据选择与过滤 #### a) 列选择 ```python # 单列的选择 single_column = df['姓名'] # 多列选择(返回个新的包含所选列的小型 DataFrame) columns_subset = df[['姓名', '年龄']] ``` #### b) 行条件筛选 ```python # 根据某条件筛选出符合条件的所有行 filtered_df = df[df['年龄'] > 30] ``` --- ### 4. 缺失值处理 #### a) 检测缺失值 ```python # 找到所有含有 NaN 的位置并标记 True 或 False missing_values = df.isnull() # 总结每列中有多少个 NA/Nan total_missing_per_col = df.isna().sum() ``` #### b) 删除缺失值所在的整行或整列 ```python # 移除任何含有NaN的行 cleaned_df = df.dropna(how="any") # 如果你想删除某特定列上的所有 nulls,则可以这样做: column_cleaned_df = df.dropna(subset=['姓名']) ``` #### c) 替换缺失值 ```python # 使用固定值填充所有的 NA/nan filled_with_value = df.fillna(-99) # 或者根据某种策略填充(比如向前填充 last observation carried forward) ffilled_df = df.ffill(axis=0) ``` --- ### 5. 分组与聚合 ```python # 计算按性别分组后的平均工资 groupby_gender_mean_salary = df.groupby("性别")["工资"].mean() ``` --- ### 6. 排序 ```python # 按照“年龄”升序排列整个表单内容 sorted_by_age_ascending = df.sort_values(by=["年龄"], ascending=True) # 同时按照两个字段排序,“部门ID”降序、“入职时间”升序 multi_sorted_df = df.sort_values(by=["部门ID", "入职时间"], ascending=[False, True]) ``` --- 这是对 Pandas些基本功能的个概述。通过结合这些命令和其他更高级的技术,你可以轻松地进行各种形式的数据预处理工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值