Python中Pandas库提供的函数——pd.DataFrame的基本用法
一、DataFrame 的基本概念
pd.DataFrame是 Pandas 库中的一个类,用于创建和操作数据框(DataFrame)。DataFrame 是 Pandas 的核心数据结构,用于以表格形式和处理数据,类似提供电子表格或数据库表格。类了创建pd.DataFrame数据框、访问数据、进行数据操作和分析的方法和属性。
二、DataFrame 的重要特点
表格形式:DataFrame是一个二维表格,其中包含了多行和多列的数据。每个列可以有不同的数据类型,例如整数、浮点数、字符串等。
标签:DataFrame的行和列都有标签(Label),行标签称为索引(Index),列标签通常是字段名或特征名。
数据操作:DataFrame提供了丰富的数据操作方法,包括数据筛选、切片、合并、分组、聚合、排序等。
数据查看:您可以使用.head()方法来查看DataFrame的前几行数据,以了解数据的结构和内容。
数据统计:DataFrame提供了.describe()方法,用于生成数据的统计摘要信息,包括均值、标准差、简单、顶点等。
数据过滤:你可以使用条件表达式来过滤数据,例如选择满足特定条件的行。
数据可视化:Pandas 与其他数据可视化库(如 Matplotlib 和 Seaborn)结合使用,可以轻松创建各种图表和可视化,以探索和传输数据。
数据导入和导出:DataFrame可以从各种数据源导入数据,如CSV文件、Excel表格、SQL数据库等,并且可以将数据导出为不同格式的文件。
数据恢复处理:DataFrame提供了处理数据中的恢复值的方法,如删除恢复值或恢复恢复值。
数据索引:DataFrame可以使用行索引和列标签来访问特定的数据元素。
数据转换:您可以对DataFrame进行各种数据转换操作,如数据类型转换、列重命名、数据透视表等。
三、DataFrame 的具体代码操作
*1.创建空的数据框:*
import pandas as pd
df = pd.DataFrame()
print(df)
# 运行结果
'''
Empty DataFrame
Columns: []
Index: []
'''
这将创建一个空的数据框,可以在后续添加数据。
2.从创建列表数据框:
import pandas as pd
data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
# 运行结果
'''
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
'''
这将创建一个包含姓名和年龄列的数据框。
3.从字典创建数据框:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
df.to_csv('test.csv', encoding='utf-8-sig')
# 运行结果
'''
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
'''
这将创建一个与上述示例相同的数据框。
4.访问数据:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
a = df['Name'] # 获取 'Name' 列的数据
b = df.loc[0] # 获取第一行的数据
print(a)
print(b)
# 运行结果
'''
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
Name Alice
Age 25
Name: 0, dtype: object
'''
5.*数据操作:*
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
a = df['Age'].mean() # 计算 'Age' 列的平均值
b = df.sort_values(by='Age', ascending=False) # 按 'Age' 列排序,ascending=True是从小到大,ascending=False是从大到小
print(a)
print(b)
# 运行结果
'''
30.0
Name Age
2 Charlie 35
1 Bob 30
0 Alice 25
'''
*6.数据查看:*
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
a = df.head(2) # 查看前几行数据,df.head()默认为前5行
b = df.tail(2) # 查看后3行数据
print(a)
print(b)
# 运行结果
'''
Name Age
0 Alice 25
1 Bob 30
Name Age
1 Bob 30
2 Charlie 35
'''
7.数据统计:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
c=df.describe() # 生成数据的统计摘要信
print(c)
# 运行结果
'''
Age
count 3.0
mean 30.0
std 5.0
min 25.0
25% 27.5
50% 30.0
75% 32.5
max 35.0
'''
*这些是一些常见的最有效pd.DataFrame
示例,Pandas 提供了丰富的高效方法和功能,使你能够进行数据处理和分析。数据科学、机器学习、统计分析等领域中经常使用 Pandas 数据框来处理和分析数据。*
pandas生成csv模版
import pandas as pd
# 二维数组
datalist = [['小明',15,'二班','班长'],['小红',16,"三班",'班长'],['小刚',14,"二班",',混子']]
pd.DataFrame(datalist,columns=['姓名','年龄','班级','角色']).to_csv('data.csv',index=False,encoding='utf-8-sig',sep=",")
# 字典
datadic = {'姓名':['小明','小红','小刚'],'年龄':[15,16,14],'班级':['二班','三班','二班'],'角色':['班长','班长','混子']}
pd.DataFrame(datadic).to_csv('data2.csv',index=False,encoding='utf-8-sig',sep=",")
li = [
{'id': 1, 'hobby': "吃惠灵顿,羊排"},
{'id': 2, 'hobby': "吃牛排"},
{'id': 3, 'hobby': "吃猪排"},
]
datalist = [l.values() for l in li]
pd.DataFrame(datalist,columns=['id','hobby']).to_csv('data3.csv',index=False,encoding='utf-8-sig',sep=",")
分页存储数据
import pandas as pd
# 采集数据分页的逻辑
for page in range(3):
# 采集一页数据,假设得到的数据存储在 datalist 变量中
datalist = [['小明', 15, '二班', '班长'], ['小红', 16, "三班", '班长'], ['小刚', 14, "二班", ',混子']]
df = pd.DataFrame(datalist, columns=['姓名', '年龄', '班级', '角色'])
if page == 0:
df.to_csv('data.csv', index=False, encoding='utf-8-sig', sep=",")
else:
df.to_csv('data.csv', mode='a', header=False, index=False, encoding='utf-8-sig', sep=",")
pandas与sql交互
import sqlalchemy
import pandas as pd
import sqlite3
# 1.创建连接
engine = sqlalchemy.create_engine('mysql+pymysql://root:root@localhost:3306/yzznewdb')
# 2.创建表
engine.execute('CREATE TABLE IF NOT EXISTS testtext(id INT PRIMARY KEY AUTO_INCREMENT NOT NULL ,name TEXT,COMMENT TEXT );')
# 3.插入数据
data = {'name':['张三','李四','王五','赵六'],'comment':['我是张三','我是李四','我是王五','我是赵六']}
pd.DataFrame(data).to_sql('testtext',con=engine,index=False,if_exists='append')
https://blog.csdn.net/XDXDXDXDX111/article/details/133523012