一篇文章理清Python-Pandas基础

目录

一、panda的概念

二、相关性质

                1.数据处理与分析:读取、存储、清洗、转化(运算)。

                2.数据探索与可视化:与数据可视化库(如Matplotlib和Seaborn)结合使用。

                3.数据重塑和透视

三、Pandas速通

                1.从表中创建DataFrame:

                2.得到DataFrame的大小(行、列数):

                3.显示DataFrame的前2行:

                4.数据选取:

                5.创建新列:

                1.insert插入:

                2.直接赋值插入:(该方法还可用于更改列的数据)

                3.关联插入:比如有单价和数量,需要插入一列总额

                6.删去重复的行:

                7.删去丢失的数据:

                8.重命名列:

                example:

                9.改变数据类型:

                10.填充缺失值:

                11.重塑数据:

                1.连结

        数据可视化: 该图片来源于:LeetCode官方题解

                 2.透视

                 数据可视化:该图来源于:LeetCode官方题解

                3.融合:

                数据可视化:该图来源于:LeetCode官方题解 

                12.方法链:

                数据可视化:该图来源于:LeetCode官方题解 

四、总结


一、panda的概念

                Python的Pandas库主要用于高效地处理和分析结构化数据,如进行数据读取、清洗、转换、统计分析以及可视化等操作。 

二、相关性质

                1.数据处理与分析:读取、存储、清洗、转化(运算)。

                2.数据探索与可视化:与数据可视化库(如Matplotlib和Seaborn)结合使用。

                3.数据重塑和透视

三、Pandas速通

                1.从表中创建DataFrame:

                1.导入pandas:

import pandas

                2.将列表转为数据结构:

student_data=[
  ['李', 15],
  ['赵', 11],
  ['孙', 11],
  ['钱', 20]]

根据列表内容给定标题(columns)

columns_student=['姓','年龄']

使用pandas下的DataFrame库来建立数据表(frame)

frame=pd.DataFrame(student_data,columns=columns_student)

之后便得到一个学生成绩表

import pandas as pd 
student_data=[
  ['李', 15],
  ['赵', 11],
  ['孙', 11],
  ['钱', 18]]
columns_student=['姓','年龄']
frame=pd.DataFrame(student_data,columns=columns_student)
print(frame)
#
   姓  年龄
0  李  15
1  赵  11
2  孙  11
3  钱  18

                2.得到DataFrame的大小(行、列数):

                Pandas 的每个 DataFrame 都有一个 shape 属性。调用时,返回一个元组 (number of rows, number of columns)。

print(frame.shape[0],frame.shape[1])

                3.显示DataFrame的前2行:

                pandas库的head方法:用于在 DataFrame 上返回前 n 行。如果省略 n,则默认为返回前 5 行。

print(frame.head(2))
#
   姓  年龄
0  李  15
1  赵  11

                4.数据选取:

                loc属性:pandas库里基于标签来选择数据的方法之一。

                loc用法为:结构.loc[结构[标题]==?,[其他需要的列]]

print(frame.loc[frame['姓']=='孙',['年龄']])
#
   年龄
2  11

                5.创建新列:

                1.insert插入:

frame.insert(1,'abc',0)
#
   姓  abc  年龄
0  李    0  15
1  赵    0  11
2  孙    0  11
3  钱    0  18

                2.直接赋值插入:(该方法还可用于更改列的数据)

frame['abc']=0
#
   姓  年龄  abc
0  李  15    0
1  赵  11    0
2  孙  11    0
3  钱  18    0

                3.关联插入:比如有单价和数量,需要插入一列总额

df['C'] = df['A'] + df['B']
print(df)

                6.删去重复的行:

import pandas as pd 
student_data=[
  ['李', 15],
  ['赵', 11],
  ['孙', 11],
  ['钱', 18],
  ['李', 19]]

columns_student=['姓','年龄']
frame=pd.DataFrame(student_data,columns=columns_student)
frame.drop_duplicates(subset='姓', keep='first', inplace=True)
print(frame)
#
subset='姓':这意味着我们只考虑基于 email 列的重复项。
keep='first':这表明我们希望保留任何重复姓名的第一个匹配项,并删除后续的匹配项。(end=类似用法)
inplace=True:这意味着更改将直接对传入的 DataFrame(frame)进行,而不会返回新的 DataFrame。

                7.删去丢失的数据:

pandas库中的dropna方法:

dropna一般结构:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
#
dropna 函数参数定义:
axis: 它可以是 {0 or 'index'#行, 1 or 'columns'#列}。默认为 0。
how: 确定当我们至少有一个 NAN 或全部 NAN 时,是否从 DataFrame 中删除行或列。
how='any': 如果存在任何 NAN 值,则删除该行或列(默认)。
how='all': 如果所有值都为 NAN,则删除该行或列。
thresh: 需要多少非 NAN 值。这是一个整型参数,需要最小数量的非 NAN 值才能保留行/列。
subset: 要考虑的另一个轴上的标签,例如,如果您正在删除行,则这些标签将是要包括的列的列表。当您只想考虑某些列中的 NAN 值时,这特别有用。

                8.重命名列:

rename结构用法
DataFrame.rename(columns=None, axis=None, inplace=False, level=None, errors='raise')
#
level: 对于具有多级索引的 DataFrame,应当重命名标签的级别。
axis: 可以是 "index" 或 "columns"。确定是重命名索引还是重命名列。默认情况下,如果您提供 columns 参数,您将重命名列。
errors: 如果是 'raise',如果尝试重命名不存在的项,则会引发错误。如果设置为 'ignore',任何重命名项目的失败都将被忽略。

                example:

import pandas as pd 
student_data=[
  ['李', 15],
  ['赵', 11],
  ['孙', 11],
  ['钱', 18],
  ['李', 19]]
columns_student=['姓','年龄']
frame=pd.DataFrame(student_data,columns=columns_student)
frame.rename(columns={'姓':'叫什么'},inplace=True)
print(frame)

#
  叫什么  年龄
0   李  15
1   赵  11
2   孙  11
3   钱  18
4   李  19

                9.改变数据类型:

                astype 函数: astype 函数用于将 pandas 对象强制转换为指定的数据类型(数据类型)。astype 可用于将熊猫对象强制转换为任何 dtype。astype 函数不会就地修改原始的 DataFrame,而是赋值给新的变量。

astype的一般结构:

DataFrame.astype({'列名':新类型}, copy=True, errors='raise')

 如果 copy 设置为 False,则只有在旧对象无法强制转换为所需类型的情况下才会创建新对象。

                10.填充缺失值:

                fillna 函数: fillna 是 Pandas 库中的一个函数,主要用于 Pandas Series 和 DataFrame 对象。它允许您使用指定的方法填充 NA/NaN 值。

                example:

frame['年龄'].fillna(18,inplace=True)

 也就是把年龄数据缺失的部分都填充为18。

                11.重塑数据:

                1.连结

        数据可视化: 该图片来源于:LeetCode官方题解

pd.concat([df1,df2],axis=0)#0与行相对应,可以和垂直相联想。
pd.concat([df1,df2],axis=1)水平连结

                 2.透视

                 数据可视化:该图来源于:LeetCode官方题解

                3.融合:

                数据可视化:该图来源于:LeetCode官方题解 

 

                12.方法链:

                数据可视化:该图来源于:LeetCode官方题解 

四、总结

                通过引入pandas库,可以用python对数据进行一定规律的运用。

                                                                                                                                        2024.12.14

作者:xndx-Henry

物联沃分享整理
物联沃-IOTWORD物联网 » 一篇文章理清Python-Pandas基础

发表回复