【Pandas】数据处理核心操作
一、日期数据处理初识
1、将字符串字段转换为日期类型
相关代码:新字段 = pd.to_datetime( 原来字段)
【运行结果】
2、获取日期数据
import pandas as pd
df = pd.DataFrame({"gmv":[100,200,300,400],"trade_date":["2025-01-06","2023-10-31","2023-12-31","2023-01-05"]})
df["trade_date"] = pd.to_datetime(df["trade_date"])
# 获取年月日
df["yy"],df["mm"],df["dd"] = df["trade_date"].dt.year,df["trade_date"].dt.month,df["trade_date"].dt.day
# 获取星期
df["week"] = df["trade_date"].dt.day_name()
# 获取日期所在季度
df["quarter"] = df["trade_date"].dt.quarter
# 判断日期是否月底年底
df["mend"] = df["trade_date"].dt.is_month_end
df["yend"] = df["trade_date"].dt.is_year_end
df
【运行结果】
3、to_period()获取统计周期
"A" 或 "Y":按年周期,如 2024-07-20 会转换为 2024 。
"M":按月周期,像 2024-05-15 会转换为 2024-05。
"Q":按季度周期,一年分为四个季度,日期会转换到对应的季度周期,例如 2024Q2 。
"W":按周周期,通常以周日作为一周的结束,比如日期落在某一周内,就会转换为该周的周期表示。
import pandas as pd df = pd.DataFrame({"gmv":[100,200,300,400],"trade_date":["2025-01-06","2023-10-31","2023-12-31","2023-01-05"]}) df["trade_date"] = pd.to_datetime(df["trade_date"]) df["ystat"] = df["trade_date"].dt.to_period("Y") df["mstat"] = df["trade_date"].dt.to_period("M") df["qstat"] = df["trade_date"].dt.to_period("Q") df["wstat"] = df["trade_date"].dt.to_period("W") df【运行结果】

二、DataFrame数据分析入门
1、查看部分数据
1)通过head()、tail()获取前n行或后n行
2)获取一列数据
3)获取多列数据
4)按行获取数据
import pandas as pd
df = pd.read_csv('data/weather.csv')
#获取行标签为1的数据
print(df.loc[1])
#获取行标签分别为1、10、100的数据
print(df.loc[[1,10,100]])
#获取行位置为0的数据
print(df.iloc[0])
#获取行位置为最后一位的数据
print(df.iloc[-1])
5)按指定行与列获取数据
import pandas as pd
df = pd.read_csv('data/weather.csv')
# 获取行标签为1,列标签为precipitation的数据
df.loc[1,["precipitation"]]
# 获取所有行,列位置为3,5,最后一位的数据
df.iloc[:,[3,5,-1]]
# 获取前10行,列位置为2、3、4、5的数据
df.iloc[:10,[2,3,4,5]]
2、分组聚合计算
语法1:df.groupby("分组字段")["要聚合的字段"].聚合函数()
语法2:df.groupby(["分组字段", "分组字段2", ...])[["要聚合的字段", "要聚合的字段2", ...]].聚合函数()
案例1:将数据按月分组,并统计最大温度和最小温度的平均值
案例2:分组频数计算——统计每个月不同天气状况的数量。
3、基本绘图
plot():pandas 提供的绘图方法,它基于 matplotlib 库,默认情况下会绘制折线图,kind='bar'是柱状图

4、常见统计值
# 查看常用统计信息
df.describe()
# 行列转置
df.describe().T
# 统计所有列
df.describe(include="all")
# 只统计数据类型为float64的列
df.describe(include=["float64"])
5、常用排序方法
import pandas as pd
df = pd.read_csv('data/weather.csv')
df["date"] = pd.to_datetime(df["date"])
# (1)找到最高温度最大的30天
df.nlargest(30,"temp_max")
# (2)从最高温度最大的30天中找出最低温度最小的5天
df.nlargest(30,"temp_max").nsmallest(5,"temp_min")
# (3)找出每年的最高温度
df["year"]=df["date"].dt.to_period("Y")
df.sort_values(by=["year","temp_max"],ascending=[True,False],inplace=True)
df.drop_duplicates(subset=["year"],inplace=True)
df
6、Pandas的数据组合函数
(1)concat连接
沿着一条轴将多个对象堆叠到一起,可通过axis参数设置沿哪一条轴连接。
【运行结果】
(2)merge合并





评论