Python Pandas总结

本文详细介绍了Python Pandas库在数据处理中的应用,包括创建DataFrame、读取CSV文件、数据查看、数据处理、列表操作等。重点讲解了如何获取和分析数据、设置datetime列、处理缺失数据、对数据进行排序和分组,以及利用Pandas进行数据可视化。此外,还涉及了Pandas在处理时间属性、数据分组和处理缺失数据方面的高级技巧。
摘要由CSDN通过智能技术生成

Python Pandas总结
1. 建立dataframe

import pandas as pd
data = [['A1', 28], ['A2', 32], ['A3', 1], ['A4', 0],
        ['A5', 10], ['A6', 22], ['A7', 30], ['A8', 19],
        ['B1', 145], ['B2', 27], ['B3', 36], ['B4', 25]]

df_data = pd.DataFrame(data,columns=["A","B"])

2. Read Csv

df_data = pd.read_csv("路径\文件名.csv",index_col = "A")   ///index_col:指定一个列为索引列

3. 查看数据(数据获取)

df_data.head(n)                   查看前n行的数据,不填n默认查看5行
df_data.tail(n)                   查看后n行的数据,不填n默认查看5行
df_data.columns                   查看列名
df_data.index                     查看行名
df_data["列名"]                    获取此列数据
df_data.列名                       获取此列数据(不加引号)
df_data[["列名1""列名2"]]        获取多列数据
df_data[n]                        获取第n行数据
df_data[1:4]                      获取1~4行数据
df_data[[1,3,5]]                  获取135行数据
df_data.loc[n,'XXX']              获取“XXX”列第N排数据
df_data.loc[n,:]                  获取n行全部列的数据(:意味着0到结尾)
df_data.loc[n,"A":"B"]            获取n行A列到B列的数据
df_data.loc[[1,3,4],["A","D"]]    获取1,3,4行中A列和D列的数据

4. 数据处理

df_data.ABC.mean()                 获取"ABC"列的平均值
df_data.["ABC"].max()              获取“ABC”列最大值
df_data.describe()                 获取各个列的数据各项指标(返回新的dataframe)
df_data["ABC"].value_counts()      获取ABC列所有行的数据计数
df_data["ABC"].unique()            获取ABC列所有的数据典型
                                   例如(df_data["Grade"].unique()返回['A','A-','B+','B','B-'])
df_data.shape                      获取规格
df_data.dtypes                     返回数据类型

5. 列表处理
A. 基础操作

df_data["new_column_name"] = 1                       //创造一个名为new_column_name,内容为1的列(如果这个列名已经存在,则改动内部数据为1)
df_data['Final_Percentage'] = df_data['Final']/100   //创造一个名为Final_Percentage的列,内容为Final列数据➗100 
del df_data['ABC']  // df_data.drop('ABC',后面如下)  //(单列删除)删除列“ABC”
df_data.drop(['A','B'], axis=1, inplace=True)       //(复合行列删除)axis=1→column axis=0→row
df_data.sort_values(by=['A','B'],inplace=True,ascending=[True,True])      //列表排序(参数:1. by 根据什么排序;
                                                                                     2. inplace;
                                                                                     3. ascending:正序【Trueor逆序【False】;
                                                                                     4. kind:排序类型;
                                                                                     5.axis= 0 or 1:按列or行排列;
                                                                                     6.na_position = {'first','last'} Na值or空值的显示位置)
函数作用函数名
取列表中某列最大值所在行的index值(返回一个带有索引和index值的dataframe)df_data [‘A’] . idxmax()

例子:在这里插入图片描述

B. 设置datetime列:
(1)在录入文件时告诉pandas某一列为datatime

pd_data = pd.read_csv('ABC.csv',parse_dates = ["Issue_Date"])

(2)在录入文件之后转换行列数据类型

df_data["ABC"] = pd.to_datatime(df_data["ABC"])

(3)Timestamp Attributes(时间属性用法)

first_datatime = df_data.loc[0,'Issue_Data']
函数名返回值
first_datatime.hour小时
first_datatime.dayofweek
first_datatime.is_leap_year是否为闰年

当使用datatime attributes作为series时,可以用.dt 来代替
在这里插入图片描述
C. 高级处理
···(1)处理列

函数作用函数名
获取所有列名df_data.columns
改变列名df_data.rename( columns= {“Mini_Exam1” : “Mini_Exam_1” , “Mini_Exam2” : “Mini_Exam_2”})

···(2)处理图表

函数作用函数名
列表堆栈pd.concat( [ df_data_A , df_data_other ], axis = 0) 【axis= 0意味着按排堆叠;axis=1 意味着按列堆叠】

如果不做处理,index列表也是按照原来的两个列表直接堆叠。因此我们需要重置索引
在函数中加入 ignore_index = True

df_data = pd.concat([ df_data_A , df_data_other ], axis = 0, ignore_index = True) 
函数作用函数名
设置Name列为索引列df_data.set_index(“Name”, inplace = True)
重设行数为索引列df_data.reset_index( drop = False, inplace = True)

···(3)处理图标里面丢失数据

函数作用函数名
读取列表时定义什么是缺失数据df_data = pd.read_csv (“Missing_Data.csv”, na_value = [“NaN”,“not available”])
定义每列的特定缺失数据df_data = pd.read_csv (“Missing_Data.csv”, na_value = {“Mini_Exam2” : “not available” , “Participation1” : -1 })
检查NaN在何处df_data.insull()
统计每处NaN的个数df_data.insull().sum()
删除有NaN的行df_data.dropna(axis = 0, inplace = False)
用某些值代换NaNdf_data.fillna(0, inplace = False)
用某些值代替特定列的NaNdf_missing.fillna({ “Temp” : ‘ABC’}, inplace = False)

···(4)Titanic Data Set

函数作用函数名
在某一行(or列)使用某个函数df_data.apply( max, axis = 0)
在某一行(or列)使用外部函数(以numpy为例)df_data.apply(np.ceil)

···(5)用pandas绘图

函数作用函数名
绘图表df_data.plot(kind = ‘scatter’, x = ‘Hours of Sleep’, y = ‘GPA’)

kind包含 line; bar; barh (horizontal bar plot); hist(histogram); box(boxplot); kde(Kemel Density Estimation plot); density (= kde); area; pie; scatter; hexbin
···(6)列表分组

函数作用函数名
按照列内内容分组df_data.groupby(‘A’,‘B’)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值