数据分析python pandas简单实践笔记

本文介绍了使用Python的pandas库进行数据分析的一些基本操作,包括读取Excel文件、查看数据、修改列名、数据筛选排序以及处理数据乱码。通过实例展示了如何利用iloc和loc选取数据、使用groupby进行分组计算、drop删除行、以及如何处理以特定字符开头的行。此外,还探讨了销售预测与实际销售的比较、逐年销售变化的百分比分析、按品牌分析销售与利润的关系以及与其他品牌相对小米的销售差异等实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

·av68916814

输出csv文件后再使用图表秀绘图

 

iloc,loc的使用:https://blog.youkuaiyun.com/w_weiying/article/details/81411257

功能为取某一行,简单来说大概是iloc用数字索引,loc用行名称索引

取某行某列: iloc[0,0]   loc['行名','列名' ]

 

.groupby(' '):按' '分组

.groupby(' ').sum():分组并相加

 

.drop():删除某行

 

筛选并排序:df[df[' '] < 0].sort_values(' ')

 

.startswith():https://www.jb51.net/article/63589.htm

是否以某个字符/字符串开头

 

输出到csv文件出现乱码:.to_csv('比较.csv',encoding="utf_8_sig")

 

#读取表格文件

df = pd.read_excel("testdata.xlsx")

df.shape

print(df.columns)

print(df.iloc[0])

 

#修改列名以规范数据

视频里用的是fillna('id')的方法 但我读出来的数据并不是nan 就换了一个方法
df.rename(columns={'Unnamed: 0':'id'}, inplace = True)
print(df)

 

至此,数据的列名为

['id', '订单号', '订单日期', '年份', '订单量', '成本', '销售', '利润', '渠道', '产品名字', '制造商',
       '商标', '品牌', '产品子分类', '产品分类', '地区', '城市', '国家']

 

Q1:假设销售预测是成本+成本*15%,比较一下实际销售和预测(按每个产品子类)

#为数据增加预测指标列
yuce = df['成本'] * 1.5
yuce = yuce.apply(lambda row: int(row))#变为整数
df['销售预测'] = yuce
print(df.columns)
q1 = df[['产品子分类','销售','销售预测']]
q1 = q1.groupby('产品子分类').sum()
q1.to_csv('销售预测对比.csv',encoding="utf_8_sig")

 

Q2:逐年比较年份销售和前一年的对比,用百分比表示

#按年份取出
q2 = df[['年份','销售']].groupby('年份').sum()
print(q2)
index = -1
def xiaoshoucha(row):
    global index
    cha = 0
    if index >= 0:
        cha = (row['销售'] - q2.iloc[index,0])/q2.iloc[index,0]*100
    index = index + 1
    return cha
q2['销售差'] = q2.apply(lambda row:xiaoshoucha(row),axis=1)
q2.to_csv('销售差.csv',encoding="utf_8_sig")

 

Q3:销售&利润关系 按品牌

q3 = df[['品牌','销售','利润','订单量']].groupby('品牌').sum()
q3.to_csv('利润关系.csv',encoding="utf_8_sig")

 

Q4:所有品牌比较,以小米为基准,比较其他品牌与小米的差异

q4 = df[['品牌','销售','利润']].groupby('品牌').sum()
mix = q4.loc['小米(MI)','销售']
q4['小米销售'] = mix
mil = q4.loc['小米(MI)','利润']
q4['小米利润'] = mil
#mid = q4.loc['小米(MI)','订单量']
#q4['小米订单量'] = mid
q4 = q4.drop(['小米(MI)'])#删除这一行
q4.to_csv('比较.csv',encoding="utf_8_sig")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值