- 算数运算
"""
前面减后面
add 加法
sub 减法
div 除法
floordiv 整除
mul 乘法
pow 幂次方
后面减前面
rsub 减法
rdiv 除法
rfloordiv 整除
rpow 幂次方
替换无穷大
replace(np.inf,0)
np.nan NaN
np.inf inf
-np.inf -inf
"""
path = r"C:\work\python\pandas_files\计算.xlsx"
data = pd.read_excel(path)
print(data)
# 1店的数都增加5
data['1店'] = data['1店'] + 5
print(data)
# 汇总两个店的数据
data['汇总'] = data["1店"] + data["2店"]
print(data)
# 进行空值的处理
data['汇总'] = data['1店'].fillna(0) + data['2店'].fillna(0)
print(data)
import numpy as np
# fill_value=0 在做运算前,将NaN值用0填充
# 加法
data['汇总'] = data['1店'].add(data['2店'], fill_value=0)
print(data)
# 减法sub
data['汇总'] = data['1店'].sub(data['2店'], fill_value=0)
print(data)
# 除法
data['汇总'] = data['1店'].div(data['2店'], fill_value=0)
print(data)
# 将无穷大替换为0
data.replace(np.inf, 0, inplace=True)
print(data)
# 相减
data['汇总'] = data['1店'].sub(data['2店'], fill_value=0)
# 后面减前面
data['汇总1'] = data['1店'].rdiv(data['汇总'], fill_value=0)
data.replace(-np.inf, 0, inplace=True)
print(data)
# 将NaN替换成0
data.replace(np.nan, 0, inplace=True)
print(data)
- 分层索引
path = r"C:\work\python\pandas_files\销售.xlsx"
data = pd.read_excel(path, header=[0, 1])
print(data)
# 查看多层索引的列信息
print(data.columns)
# 取出土豆的销量
b = data[('土豆', '销量')]
print(b)
# 取出土豆的销量和毛利
b = data[[('土豆', '销量'), ('土豆', '毛利')]]
print(b)
# 取出土豆的销量和倭瓜的销量
b = data[[('土豆', '销量'), ('倭瓜', '销量')]]
print(b)
# 计算土豆和我挂的销量总和
b = data[('土豆', '销量')] + data[('倭瓜', '销量')]
print(b)
# 汇总土豆和倭瓜的销量和毛利
b = data['土豆'] + data['倭瓜']
print(b)
print(b.columns)
# 创建多层索引
b.columns = pd.MultiIndex.from_product([['总计'], b.columns])
print(b)
# 将汇总数据与原数据横向拼接
data = pd.concat([data, b], axis=1)
print(data)
- 分箱
# 产生50个10-100之间的成绩
score = np.random.randint(10, 100, 50)
print(score)
# 对分组数据指定范围
xz = [0, 60, 70, 80, 100]
xzname = ['差', '中', '良', '优']
# 对数据进行分组
b = pd.cut(score, xz)
print(b)
# 显示重复值的数量
c = b.value_counts()
print(c)
# 如果上面统计出错,就可以构造一个Series对象来统计
c = pd.Series(b).value_counts()
print(c)
# 用优良中差来表示
b = pd.cut(score, xz, labels=xzname)
print(b.value_counts())
# 等平分箱
# 产生50个10-100之间的成绩
score = np.random.randint(10, 100, 50)
print(score)
# 最大值、最小值
print(score.max())
print(score.min())
# 将箱子平均分成5粉
b = pd.qcut(score, q=4)
print(b.value_counts())
- describe()
"""
describe()
count 该列的非NaN的个数
mean 平均值
std 标准差
min 最小值
25% 1/4分位数
50% 2/4分位数
75% 3/4分位数
max 最大值
其他
count 统计个数
sum 求和
mean 求平均值
mad 求平均绝对方差
median 求中位数
min 最小值
max 最大值
argmin 最小值的索引位置
argmax 最大值的索引位置
idxmin 最小值的行索引
idxmax 最大值的行索引
mode 众数
abs 绝对值
prod 乘积
"""
path = r"C:\work\python\pandas_files\数据统计.xlsx"
data = pd.read_excel(path)
print(data)
# 显示整个表的数值列的描述统计信息
b = data.describe()
print(b)
# 显示语文的描述统计信息
b = data['语文'].describe()
print(b)
# 求语文的最高分
b = data['语文'].max()
print(b)
# 每一列的最大值
b = data.max(numeric_only=True)
print(b)
# 设置索引列
data.set_index('姓名', inplace=True)
print(data)
# 最大值索引位置
b = data['语文'].argmax()
print(b)
# 最大值行索引
c = data['语文'].idxmax()
print(c)
- 合并
import os
# 合并同一个文件夹中的所有excle文件
path = r"C:\work\python\pandas_files\excel的合并与拆分01\\"
# 创建一个空的表
data = pd.DataFrame()
# 得到文件夹中的所有文件
allfile = os.listdir(path)
# 遍历取出每一个文件
for fname in allfile:
data1 = pd.read_excel(path+fname) # 读取excel文件
data = pd.concat([data, data1], axis=0) # 拼接
data.set_index("日期", inplace=True) # 设置索引
data.to_excel('合并.xlsx') # 写入文件
# 同一个工作簿的多个Sheet合并
path = r"C:\work\python\pandas_files\excel的合并与拆分03\合并2.xlsx"
# 第二个参数
# sheet_name='Sheet1' 指定读取某一个工作表
# sheet_name=None 读取所有工作表
data = pd.read_excel(path, sheet_name=None)
print(data)
newdata = pd.DataFrame()
for v in data.values():
newdata = pd.concat([newdata, v])
newdata.set_index("序号", inplace=True)
print(newdata)
newdata.to_excel("a合并.xlsx")
- 拆分
# 将一个工作表拆分成多个excel文件中
path = r"C:\work\python\pandas_files\excel的合并与拆分03\拆分.xlsx"
data = pd.read_excel(path)
print(data)
# 对部门删除重复值
bmlst = data['部门'].drop_duplicates()
for bm in bmlst:
b = data[data.部门 == bm]
b.to_excel("a"+bm+'.xlsx')
# 将一个工作表拆分成同一个excel中的多个工作表
path = r"C:\work\python\pandas_files\excel的合并与拆分03\拆分.xlsx"
data = pd.read_excel(path)
print(data)
# 对部门删除重复值
bmlst = data['部门'].drop_duplicates()
with pd.ExcelWriter('a拆分.xlsx') as ew:
for bm in bmlst:
b = data[data.部门 == bm]
b.to_excel(ew, sheet_name=bm, index=False)
标签:基本,xlsx,excel,pd,使用,print,path,data,Pandas
From: https://www.cnblogs.com/dogleftover/p/17852636.html