1.安装pip
- 安装pip
get-pip.py文件上pip官网下载
python get-pip.py --proxy http://web-proxy.tencent.com:8080 - 升级pip
python -m pip install -U pip --proxy http://web-proxy.tencent.com:8080
2.安装Pandas
- 普通安装
pip3 install Pandas - 设置代理
pip3 --proxy http://web-proxy.tencent.com:8080 install Pandas
pip3 --proxy http://web-proxy.tencent.com:8080 install openpyxl
xlrd模块对xls文件进行读操作:pip3 --proxy http://web-proxy.tencent.com:8080 install xlrd
xlwt模块对xls文件进行写操作:pip3 --proxy http://web-proxy.tencent.com:8080 install xlwt
# 参考文档https://codingpy.com/article/a-quick-intro-to-pandas/
from pandas import Series, DataFrame
import pandas as pd
# header 关键字告诉 Pandas 哪些是数据的列名。
# 读取 csv文件
resourceFile = pd.read_csv('file/销售额报表.csv',header=0)
resourceDf = pd.DataFrame(resourceFile)
# 过滤净销量<1的
resourceDf = resourceDf[resourceDf['净销量'] > 0]
# 读取 xlsx
targetFile= pd.read_excel("file/mall数据(1).xlsx",sheet_name='服务宝')
targetDf = pd.DataFrame(targetFile)
frame = DataFrame({
'门店编码':resourceDf['门店编码'],
'净销量': resourceDf['净销量']
})
#设置索引、排序、索引恢复为数据、分组求和
frame = frame.set_index(['门店编码']).sort_index(ascending=True).reset_index('门店编码').groupby('门店编码').sum()
#合并数据
rs = pd.merge(targetDf,frame,on='门店编码',how='left')
# 两列相加、空值填充0
def candleNull(num):
if isinstance(num,int) == False:
num = 0
return num
rs['6月碎屏宝'] = rs['6月碎屏宝'].apply(candleNull)+rs['净销量'].fillna(0)
# 删除某一列
rs.drop(['净销量'],axis=1,inplace=True)
def candleZero(num):
if num == 0:
num = ''
return num
rs['6月碎屏宝'] = rs['6月碎屏宝'].apply(candleZero)
rs = rs.set_index(['序号'])
rs.to_excel("file/downFlie.xlsx",sheet_name='服务宝')
# 参考文档https://codingpy.com/article/a-quick-intro-to-pandas/
# 读取 文件
# header 关键字告诉 Pandas 哪些是数据的列名。
file = pd.read_csv('file/销售额报表.csv',header=0)
df = pd.DataFrame(file)
#设置索引
df = df.set_index(['门店编码'])
#查看前 5 行的数据:
df.head(5)
#查看最后5行:
df.tail(5)
#查看多少条数据
len(df)
# 提取某一列
df['净销量']
# 提取某一行
df.iloc[30]
#查询门店编码是11600002的每一行
#loc 是基于标签的,而 iloc 是基于数字的,ix 是基于标签的查询方法,但它同时也支持数字型索引作为备选
df.loc[11600002]
df.ix[11600002]
#按正序排序
df.sort_index(ascending=True)