我要投稿 如果你有好的文章,欢迎分享给我们,我们会给与适当的补贴

Python使用Pandas的笔记

刚刚开始学 Python,这里仅仅作为自己的做笔记的地方。技能不好,请不要见怪。不会涉及到一些非常基础的,也不会涉及到很难的。只是有针对的学习,对自己有用的,数据处理方面的技能。

其实觉得Excel表格自己的Pivot Table已经很好用了。但是多学一些技能,这里记录下,自己学习Python的Pivot Table的功能,希望可以提高自己的工作效率

Pivot_table的学习笔记

import pandas as pd
#数据透视表
#pivot_table(date, value=None, index = None, Columns= Name, aggfunc="mean", fill_value=None, margins=False, dropna=Trun, margins_name ="ALL")
#date: 整张表
#values:要透视的数据,要统计的数据
#index:行索引
#columns:列索引
#aggfunc:整合函数(sum, count)
#fill_value:对空值的填充值
#margins:表示是否显示合计列,
#dropna:是否删除缺失,如果为true,就会删除有缺失值的行
#margins_name:合计列的列名
dfs=pd.read_excel(r"D:\test\newfile\solist.xlsx")
print(dfs)
print("统计各个客户的各个产品线的销售")
print(pd.pivot_table(dfs,values="SO Amount  USD",index="Customer Acct", columns ="Production Line", aggfunc = "sum"))
#dfsg=pd.pivot_table(dfs,values="SO Amount  USD",index="Customer Acct", columns ="Production Line", aggfunc = "sum")
#dfsg.to_excel("D:\\test\\newfile\\salesgourp1.xlsx")
#统计各个客户的各个产品线的销售,并在最后显示合计,并命名为”合计“
print(pd.pivot_table(dfs,values="SO Amount  USD",index="Customer Acct", columns ="Production Line", aggfunc = "sum", margins=True, margins_name="合计"))
#统计各个客户的各个产品线的销售,并在最后显示合计,缺失值,填写为0
print(pd.pivot_table(dfs,values="SO Amount  USD",index="Customer Acct", columns ="Production Line", aggfunc = "sum", margins=True, margins_name="合计", fill_value=0))
#同时统计各个客户的各个产品线的销售,同时统计美金销售数据,和外币销售数据
print(pd.pivot_table(dfs,values=["SO Amount  USD","Foreign SO"],index="Customer Acct", columns ="Production Line", aggfunc = "sum", margins=True, margins_name="合计", fill_value=0))


两个表格的合并

#读取excel的文件的Sheet1和Sheet2
import pandas as pd
#设置文件的位置
filePath = r"d:/test/newfile/soinfo.xlsx"
#读取Sheet1的数据
df1=pd.read_excel(filePath,sheet_name="Sheet1")
#读取Sheet2的数据
df2=pd.read_excel(filePath,sheet_name="Sheet2")

print("df1的数据")
print(df1)

print("df2的数据")
print(df2)

print("尝试合并数据")
print(pd.merge(df1,df2))

然后运行的结果如下,自动会按照Number,进行合并。

结果

有时我们所得到的数据不只是一列重复还可能是多列,再试试对多列去重。

结果:

文章来源互联网,如有侵权,请联系管理员删除。邮箱:[email protected] / QQ:417803890

一、删除空值

1、删除未经处理的空值数据所在的行或列

在这种情况下我们看到的空值数据通常显示的是NaN

那么这种情况就比较好处理直接调用dropna()函数

应用:

order.dropna(axis=1)

删除过后的样子:

2、删除已用代表空值的’NA’替换过的数据

这个时候就需要写一个循环来删除数据所在行或者列(这里删的是列)
删除前先看一下数据

开始写循环

输出结果:

可以看到此时已经没有值为空的列了。

二、去重

调用去重函数pd.drop_duplicates()

应用:
首先创建一个DataFrame
(通过传递可以转换为类似系列的对象的字典来创建DataFrame)


可以看到在D列有重复的数据test和train
先试试对某一列去重(这里是D列)

# 对某一列去重
datas.drop_duplicates(['D'])

结果

有时我们所得到的数据不只是一列重复还可能是多列,再试试对多列去重。

# 对多列一起去重
datas.drop_duplicates(['A','B','C','D']) # 我们可以看到没有变化因为没有完全一样的一行

结果:

Add a Comment

Your email address will not be published. Required fields are marked *