pandas的增删查改

1.导入pandas

import pandas as pd

2.导入xlrd (必须是在11.0.0版本以上)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd==1.2.0
3.导入数据`

pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("朝阳医院2018年销售数据.xlsx")
print(df)
df=pd.read_csv("beijing_tianqi_2018.csv")
print(df)

4.数据查询

#统计强力VC银翘片销售次数
print(df[df["商品名称"] == '强力VC银翘片'].count()["销售数量"])
#统计社保卡号1616528拿药数量
print(df[df["社保卡号"] == 1616528]["销售数量"].sum())
#显示销售数量最高的销售信息
print(df.iloc[df["销售数量"].argmax()])
#统计各个商品销售的次数
print(df["商品名称"].value_counts())
#统计销售数据中有哪些药品销售过,每种药品只显示一次
print(df["商品名称"].unique())
#查看“心痛定”,“开博通”,“珍菊减压片”三种药品销售信息
print(df[df["商品名称"].isin(["心痛定", "开博通", "珍菊减压片"])])
#统计一年中有哪些fengxiang,每种风只显示一次
print(df["fengxiang"].unique())
#求出aqiLevel每个级别的天数,例:1 115 2 150
print(df["aqiLevel"].value_counts())
#统计每种tianqi的天数
print(df["tianqi"].value_counts())
#统计aqiInfo是优和良的天数在全年的占比  结果是(0.73)
print(round([df["aqiInfo"].isin(["优", "良"])].pct_change()))
#统计tianqi中晴和多云两种天气里,不同aqiInfo的天气
print(df["aqiInfo"][df["tianqi"].isin(["晴", "多云"])].value_counts())
#将购药时间列分割成购药日期和星期,将日期转成datetime类型后作为销售数据的索引
df.dropna(axis=0,inplace=True) #删除空数据
df["星期"]=df["购药时间"].map(lambda a:a[-3:])
df["购药时间"]=df["购药时间"].map(lambda a:a[:10])
#删除2018-2-29号的数据
index=df[df["购药时间"]=="2018-02-29"].index
df=df.drop(index)
# 将日期转成datetime类型
df["购药时间"]=pd.to_datetime(df["购药时间"])
#排序
df.set_index("购药时间",drop=True,inplace=True)
df.sort_index(inplace=True)
print(df)
#查看3月份的所有销售信息
print(df["2018-03"])
#查看每个月20号的销售信息
print(df[df.index.day==20])
#查看周二的所有数据
print(df[df.index.dayofweek==1])
#查看第二季度的所有销售数据
print(df[df.index.quarter==2])
#原数据中星期错误,2018-01-01是周一。利用map函数将"星期"列的值更正
def change(a):
    num=a.dayofweek
    if num==0:
        return "星期一"
    elif num==1:
        return "星期二"
    elif num==2:
        return "星期三"
    elif num==3:
        return "星期四"
    elif num==4:
        return "星期五"
    elif num==5:
        return "星期六"
    else:
        return "星期日"
df["星期"]=df.index.map(change)
print(df)

#升降采样

import numpy as np
import pandas as pd
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_csv("beijing_tianqi_2018.csv")
print(df)
#升降采样
#每五小时显示一次天气信息:升采样
df["ymd"]=pd.to_datetime(df["ymd"])
df.set_index("ymd",drop=False,inplace=True)
print(df.resample("5H").asfreq())
#每天转成每5天显示一次:降采样,用于统计
print(df.resample("5D").mean())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值