当前位置: 首页 > wzjs >正文

免费做网站bz3399seopeixun

免费做网站bz3399,seopeixun,自己做公司网站需要什么,无锡网站建设企业排名pandas是Python中最强大的数据处理和分析库之一,它提供了高效、灵活且易于使用的数据结构,使数据清洗、转换和分析变得简单直观。 1、pandas库简介 pandas由Wes McKinney于2008年开发,名称来源于"panel data"(面板数据…

pandas是Python中最强大的数据处理和分析库之一,它提供了高效、灵活且易于使用的数据结构,使数据清洗、转换和分析变得简单直观。

1、pandas库简介

pandas由Wes McKinney于2008年开发,名称来源于"panel data"(面板数据)和"Python data analysis"(Python数据分析)。它构建在NumPy之上,是数据科学领域的核心工具之一。

2、pandas核心数据结构

1. Series(一维数据)

import pandas as pd# 创建Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)
"""
0    1
1    3
2    5
3    7
4    9
dtype: int64
"""

2. DataFrame(二维数据表)

# 创建DataFrame
data = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 35],'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
print(df)
"""姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  广州
"""

3、pandas核心功能

1. 数据读取与写入

# 读取CSV文件
df = pd.read_csv('data.csv')# 读取Excel文件
df = pd.read_excel('data.xlsx')# 写入文件
df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx', index=False)

2. 数据查看与筛选

# 查看前5行
print(df.head())# 查看统计信息
print(df.describe())# 条件筛选
young_people = df[df['年龄'] < 30]
beijing_people = df[df['城市'] == '北京']

3. 数据清洗

# 处理缺失值
df.fillna(0)  # 用0填充
df.dropna()   # 删除缺失值# 删除重复值
df.drop_duplicates()# 重命名列
df.rename(columns={'姓名': 'name', '年龄': 'age'}, inplace=True)

4. 数据排序

# 按年龄升序排序
df.sort_values('年龄')# 按年龄降序排序
df.sort_values('年龄', ascending=False)# 多列排序
df.sort_values(['城市', '年龄'])

5. 数据分组与聚合

# 按城市分组计算平均年龄
city_avg_age = df.groupby('城市')['年龄'].mean()# 多条件聚合
city_stats = df.groupby('城市').agg({'年龄': ['mean', 'max', 'min'],'姓名': 'count'
})

4、实际应用场景

1. 数据清洗与预处理

# 处理销售数据
sales = pd.read_csv('sales_data.csv')# 填充缺失值
sales['销售额'].fillna(sales['销售额'].mean(), inplace=True)# 转换日期格式
sales['日期'] = pd.to_datetime(sales['日期'])# 添加计算列
sales['利润率'] = (sales['利润'] / sales['销售额']) * 100

2. 金融数据分析

# 分析股票数据
stocks = pd.read_csv('stock_prices.csv')# 计算移动平均线
stocks['5日均线'] = stocks['收盘价'].rolling(5).mean()
stocks['20日均线'] = stocks['收盘价'].rolling(20).mean()# 计算每日收益率
stocks['日收益率'] = stocks['收盘价'].pct_change() * 100# 找出涨幅超过5%的交易日
big_gain_days = stocks[stocks['日收益率'] > 5]

3. 销售报表生成

# 生成月度销售报表
monthly_sales = sales.groupby(pd.Grouper(key='日期', freq='M')).agg({'销售额': 'sum','利润': 'sum','订单ID': 'count'
})# 计算各项指标
monthly_sales['平均订单金额'] = monthly_sales['销售额'] / monthly_sales['订单ID']
monthly_sales['利润率'] = (monthly_sales['利润'] / monthly_sales['销售额']) * 100# 保存报表
monthly_sales.to_excel('monthly_sales_report.xlsx')

4. 客户行为分析

# 分析电商用户行为
user_behavior = pd.read_csv('user_behavior.csv')# 计算RFM指标
now = pd.to_datetime('today')
rfm = user_behavior.groupby('用户ID').agg({'购买日期': lambda x: (now - x.max()).days,  # 最近一次购买(R)'订单ID': 'count',                          # 购买频率(F)'订单金额': 'sum'                           # 购买金额(M)
})# 重命名列
rfm.columns = ['Recency', 'Frequency', 'Monetary']# RFM评分
rfm['R_Score'] = pd.qcut(rfm['Recency'], 5, labels=[5, 4, 3, 2, 1])
rfm['F_Score'] = pd.qcut(rfm['Frequency'], 5, labels=[1, 2, 3, 4, 5])
rfm['M_Score'] = pd.qcut(rfm['Monetary'], 5, labels=[1, 2, 3, 4, 5])# 计算RFM总分
rfm['RFM_Score'] = rfm['R_Score'].astype(int) + rfm['F_Score'].astype(int) + rfm['M_Score'].astype(int)

5. 时间序列分析

# 分析网站访问量
web_traffic = pd.read_csv('web_traffic.csv', parse_dates=['时间戳'])
web_traffic.set_index('时间戳', inplace=True)# 按小时重采样
hourly_visits = web_traffic['访问ID'].resample('H').count()# 计算7天移动平均
hourly_visits_7d_avg = hourly_visits.rolling(window=7*24).mean()# 找出访问高峰时段
peak_hours = hourly_visits[hourly_visits > hourly_visits.quantile(0.95)]

5、项目实际的场景案例-电商类

1. 订单数据处理

import pandas as pd# 读取电商订单数据
orders = pd.read_csv('ecommerce_orders.csv')# 查看数据结构
print(orders.info())# 处理日期字段
orders['order_date'] = pd.to_datetime(orders['order_date'])
orders['month'] = orders['order_date'].dt.month# 计算订单金额(单价×数量)
orders['total_amount'] = orders['unit_price'] * orders['quantity']# 查看销售额前10的商品
top_products = orders.groupby('product_name')['total_amount'].sum().nlargest(10)
print(top_products)

2. 用户行为分析

# 分析用户购买频率
user_activity = orders.groupby('user_id').agg(order_count=('order_id', 'count'),total_spent=('total_amount', 'sum'),last_order=('order_date', 'max')
)# 计算用户活跃天数
current_date = pd.to_datetime('today')
user_activity['days_since_last_order'] = (current_date - user_activity['last_order']).dt.days# 用户分层
user_activity['user_type'] = pd.cut(user_activity['days_since_last_order'],bins=[0, 30, 90, 365, float('inf')],labels=['活跃', '休眠', '流失', '失效']
)

6、金融数据处理案例–投资类

1. 股票数据分析

# 读取股票数据
stock_data = pd.read_csv('stock_prices.csv', parse_dates=['date'])
stock_data.set_index('date', inplace=True)# 计算技术指标
stock_data['5_day_ma'] = stock_data['close'].rolling(5).mean()
stock_data['20_day_ma'] = stock_data['close'].rolling(20).mean()
stock_data['daily_return'] = stock_data['close'].pct_change()# 找出金叉点(5日均线上穿20日均线)
stock_data['golden_cross'] = (stock_data['5_day_ma'] > stock_data['20_day_ma']) & \(stock_data['5_day_ma'].shift(1) <= stock_data['20_day_ma'].shift(1))

2. 投资组合分析

# 构建投资组合
portfolio = {'AAPL': 0.4,'MSFT': 0.3,'GOOG': 0.3
}# 计算组合每日收益
returns = pd.DataFrame()
for stock, weight in portfolio.items():returns[stock] = stock_data[stock_data['ticker'] == stock]['daily_return'] * weightportfolio_returns = returns.sum(axis=1)# 计算累计收益
cumulative_returns = (1 + portfolio_returns).cumprod()

7、pandas高级技巧

1. 数据透视表

# 创建销售数据透视表
pivot_table = pd.pivot_table(sales,values='销售额',index='销售区域',columns='产品类别',aggfunc='sum',fill_value=0,margins=True
)

2. 多表合并

# 合并订单表和客户表
orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')merged_data = pd.merge(orders,customers,how='left',on='客户ID'
)

3. 分类数据处理

# 将年龄分段
df['年龄分段'] = pd.cut(df['年龄'],bins=[0, 18, 30, 50, 100],labels=['未成年', '青年', '中年', '老年']
)# 查看各年龄段人数
print(df['年龄分段'].value_counts())

4. 向量化操作

# 高效计算(避免循环)
df['BMI'] = df['体重'] / (df['身高'] ** 2)# 条件赋值
df['健康状态'] = np.where(df['BMI'] > 25, '超重', '正常')

8、性能优化建议

  1. 使用向量化操作:避免使用循环,尽量使用pandas内置方法
  2. 选择合适的数据类型:如将字符串转换为category类型节省内存
  3. 使用query方法:大数据集筛选时更高效
  4. 分批处理:处理超大文件时使用chunksize参数
  5. 使用eval和query:对大型DataFrame进行复杂表达式计算
# 高效查询示例
large_df.query('销售额 > 1000 and 利润率 < 0.1', inplace=True)

总结

pandas作为Python数据科学生态系统的核心组件,提供了:

  • 丰富的数据结构(Series和DataFrame)
  • 强大的数据清洗和预处理能力
  • 灵活的数据分组和聚合功能
  • 高效的时间序列处理
  • 便捷的数据可视化集成

无论是金融分析、销售报表、科学研究还是机器学习数据预处理,pandas都能提供高效、简洁的解决方案。掌握pandas可以让你在数据处理工作中事半功倍,将更多精力集中在分析而非数据准备上。

记住,pandas学习的最佳方式是通过实际项目练习。从简单的数据清洗开始,逐步尝试更复杂的数据分析任务,你会很快体会到这个库的强大之处。

http://www.dtcms.com/wzjs/29659.html

相关文章:

  • 真正免费手机网站建设谷歌地图下载
  • 北京公司网站建惠州seo代理商
  • html网站开发 工具建网站找哪个平台好呢
  • 跨境平台谷歌seo和百度seo
  • 网站开发前端框架和后端框架武汉刚刚突然宣布
  • 佛山专业的做网站的青岛seo
  • 网易企业邮箱app下载西安关键词seo公司
  • 犀牛云做网站多少钱上海优化价格
  • 深圳做网站维护的公司遵义网站seo
  • 定制型网站建设合同范本seo联盟
  • 彩票网站如何做最新新闻消息
  • 杭州cms建站模板下载google网页版登录入口
  • 怎么做网站里导出没有水印的图域名服务器ip地址查询
  • wordpress编程视频武汉外包seo公司
  • 网站设计师简介app香港账号
  • 怎样给网站登录界面做后台视频推广平台
  • 杭州五旋科技网站建设怎么样温州seo按天扣费
  • 宜兴做网站哪个好高级搜索引擎技巧
  • 免费的商城网站我要推广网
  • 专业广州网站建设培训平台
  • 网站建设视频讲解北京seo排名厂家
  • html网页导航栏模板seo营销优化软件
  • 泰顺网站建设百度站长平台工具
  • 广西桂林简介湖南竞价优化专业公司
  • wordpress主题丢失石景山区百科seo
  • 网络科技公司帮高校建设网站电商如何推广自己的产品
  • 自己开发购物网站东莞seo建站排名
  • 公司网站开发工具优化设计
  • 创业网站怎么做的整合营销的最高阶段是
  • 香港网站能备案吗百度搜索首页