Pandas 一个非常强大的数据分析工具

Pandas 是基于 NumPy 的 Python 数据分析库,提供了高效的高级数据结构(Series 和 DataFrame)和便捷的数据操作工具,是数据清洗、转换和分析的必备技能。一个非常强大的数据分析和操作库,它提供了大量的功能来处理表格数据。

下面是一些基本的 Pandas 模块功能和方法,

import pandas as pd

创建 DataFrame

DataFrame 是 Pandas 中最常用的数据结构,用于存储表格数据。

pythonCopy Code
 
# 从字典创建 DataFrame data = {'Name': ['John', 'Anna', 'Peter', 'Linda'], 'Age': [28, 34, 29, 40], 'City': ['New York', 'Paris', 'Berlin', 'London']} df = pd.DataFrame(data) print(df)

读取数据

Pandas 可以从多种数据源读取数据,如 CSV、Excel、SQL 数据库等。

pythonCopy Code
 
# 从 CSV 文件读取数据 df = pd.read_csv('data.csv') print(df)

数据选择和过滤

你可以使用多种方式来选择和过滤 DataFrame 中的数据。

pythonCopy Code
 
# 选择列 print(df['Name']) # 选择多列 print(df[['Name', 'Age']]) # 基于条件过滤行 print(df[df['Age'] > 30])

数据操作和修改

你可以对数据进行各种操作,如添加、删除列,或者修改列的值。

pythonCopy Code
 
# 添加新列 df['Country'] = ['USA', 'France', 'Germany', 'UK'] print(df) # 删除列 del df['Country'] # 或者使用下面的方法删除列 df.drop('Country', axis=1, inplace=True) print(df)

数据聚合和分组

对数据进行聚合和分组操作,比如求和、平均等。

pythonCopy Code
 
# 按城市分组并计算平均年龄 grouped = df.groupby('City')['Age'].mean() print(grouped)

数据清洗和预处理

处理缺失值、重复值等。

pythonCopy Code
 
# 删除含有缺失值的行 df.dropna(inplace=True) print(df) # 删除重复行 df.drop_duplicates(inplace=True) print(df)

数据导出

将 DataFrame 导出到不同的文件格式。

pythonCopy Code
 
# 将 DataFrame 导出到 CSV 文件 df.to_csv('output.csv', index=False) # index=False 不保存索引到文件里。

Pandas 的官方文档(https://pandas.pydata.org/pandas-docs/stable/)提供了更详细的信息和高级功能的使用方法。

pandas中有两个主要的数据结构,其中Series数据结构类似于Numpy中的一维数组,DataFrame类似于多维表格数据结构。

pandas是python数据分析的核心模块。它主要提供了五大功能:

支持文件存取操作,支持数据库(sql)、html、json、pickle、csv(txt、excel)、sas、stata、hdf等。
支持增删改查、切片、高阶函数、分组聚合等单表操作,以及和dict、list的互相转换。
支持多表拼接合并操作。
支持简单的绘图操作。
支持简单的统计分析操作。
一、Series数据结构
Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。

Series比较像列表(数组)和字典的结合体

import numpy as np
import pandas as pd

df = pd.Series(0, index=['a', 'b', 'c', 'd'])
print(df)

a 0
b 0
c 0
d 0
print(df.values)
# [0 0 0 0]

print(df.index)
# Index(['a', 'b', 'c', 'd'], dtype='object')
一键获取完整项目代码

1 Series支持NumPy模块的特性(下标)
详解 方法
从ndarray创建Series Series(arr)
与标量运算 df*2
两个Series运算 df1+df2
索引 df[0], df[[1,2,4]]
切片 df[0:2]
通用函数 np.abs(df)
布尔值过滤 df[df>0]
arr = np.array([1, 2, 3, 4, np.nan])
print(arr)
# [ 1. 2. 3. 4. nan]


df = pd.Series(arr, index=['a', 'b', 'c', 'd', 'e'])
print(df)
# 结果:
a 1.0
b 2.0
c 3.0
d 4.0
e NaN
print(df**2)
# 结果:
a 1.0
b 4.0
c 9.0
d 16.0
e NaN
print(df[0])
# 1.0

print(df['a'])
# 1.0

print(df[[0, 1, 2]])
# 结果:
a 1.0
b 2.0
c 3.0
print(df[0:2])
# 结果:
a 1.0
b 2.0
np.sin(df)
# 结果:
a 0.841471
b 0.909297
c 0.141120
d -0.756802
e NaN
df[df > 1]
# 结果:
b 2.0
c 3.0
d 4.0

2 Series支持字典的特性(标签)
详解 方法
从字典创建Series Series(dic),
in运算 ’a’ in sr
键索引 sr[‘a’], sr[[‘a’, ‘b’, ‘d’]]
df = pd.Series({'a': 1, 'b': 2})
print(df)
# 结果:
a 1
b 2
dtype: int64

print('a' in df)
# True

print(df['a'])
# 1

3 Series缺失数据处理
方法 详解
dropna() 过滤掉值为NaN的行
fillna() 填充缺失数据
isnull() 返回布尔数组,缺失值对应为True
notnull() 返回布尔数组,缺失值对应为False
df = pd.Series([1, 2, 3, 4, np.nan], index=['a', 'b', 'c', 'd', 'e'])
print(df)
# 结果:
a 1.0
b 2.0
c 3.0
d 4.0
e NaN

十一、pandas读取sql语句
import numpy as np
import pandas as pd
import pymysql


def conn(sql):
# 连接到mysql数据库
conn = pymysql.connect(
host="localhost",
port=3306,
user="root",
passwd="123",
db="db1",
)
try:
data = pd.read_sql(sql, con=conn)
return data
except Exception as e:
print("SQL is not correct!")
finally:
conn.close()


sql = "select * from test1 limit 0, 10" # sql语句
data = conn(sql)
print(data.columns.tolist()) # 查看字段
print(data) # 查看数据
 
参考:https://blog.csdn.net/qdPython/article/details/128535116

 

posted @ 2025-12-12 16:29  konglingbin  阅读(0)  评论(0)    收藏  举报