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

posted @ 2023-12-19 11:32  hanfe1  阅读(1978)  评论(0编辑  收藏  举报