一行代码定义List



下面是使用For循环创建列表和用一行代码创建列表的对比。

x = [1,2,3,4]
out = []
for item in x:out.append(item**2)
print(out)
[1, 4, 9, 16]
# vs.
x = [1,2,3,4]
out = [item**2 for item in x]
print(out)
[1, 4, 9, 16]

Lambda表达式



厌倦了定义用不了几次的函数? Lambda表达式是你的救星! Lambda表达式用于在Python中创建小型,一次性和匿名函数对象。 它能替你创建一个函数。

lambda表达式的基本语法是:

lambda arguments: expression

请注意,只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。 你可以从下面的例子中,感受lambda表达式的强大功能:

double = lambda x: x * 2
print(double(5))
10

Map和Filter



一旦掌握了lambda表达式,学习将它们与Map和Filter函数配合使用,可以实现更为强大的功能。

具体来说,map通过对列表中每个元素执行某种操作并将其转换为新列表。 在本例中,它遍历每个元素并乘以2,构成新列表。 请注意,list()函数只是将输出转换为列表类型。

# Map
seq = [1, 2, 3, 4, 5]
result = list(map(lambda var: var*2, seq))
print(result)
[2, 4, 6, 8, 10]

Filter函数接受一个列表和一条规则,就像map一样,但它通过比较每个元素和布尔过滤规则来返回原始列表的一个子集。

# Filter
seq = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x > 2, seq))
print(result)
[3, 4, 5]

Arange和Linspace



Arange返回给定步长的等差列表。 它的三个参数start、stop、step分别表示起始值,结束值和步长, 请注意,stop点是一个“截止”值,因此它不会包含在数组输出中。

# np.arange(start, stop, step)
np.arange(3, 7, 2)
array([3, 5])

Linspace和Arrange非常相似,但略有不同。 Linspace以指定数目均匀分割区间。 所以给定区间start和end,以及等分分割点数目num,linspace将返回一个NumPy数组。 这对绘图时数据可视化和声明坐标轴特别有用。

# np.linspace(start, stop, num)
np.linspace(2.0, 3.0, num=5)
array([ 2.0,  2.25,  2.5,  2.75, 3.0])

Axis代表什么?



在Pandas中,删除一列或在NumPy矩阵中求和值时,可能会遇到Axis。 我们用删除一列(行)的例子:

df.drop('Column A', axis=1)
df.drop('Row A', axis=0)

如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0。 但为什么呢? 回想一下Pandas中的shape

df.shape
(# of Rows, # of Columns)

从Pandas DataFrame中调用shape属性返回一个元组,第一个值代表行数,第二个值代表列数。如果你想在Python中对其进行索引,则行数下标为0,列数下标为1,这很像我们如何声明轴值。

Concat,Merge和Join



如果您熟悉SQL,那么这些概念对您来说可能会更容易。 无论如何,这些函数本质上就是以特定方式组合DataFrame的方式。 在哪个时间跟踪哪一个最适合使用可能很困难,所以让我们回顾一下。

Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。

Merge将多个DataFrame合并指定主键(Key)相同的行。

Join,和Merge一样,合并了两个DataFrame。 但它不按某个指定的主键合并,而是根据相同的列名或行名合并。

Pandas Apply



Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy的数组。
Apply将一个函数应用于指定轴上的每一个元素。 使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作,不用循环,非常有用!

df = pd.DataFrame([[4, 9],] * 3, columns=['A', 'B'])dfA  B
0  4  9
1  4  9
2  4  9df.apply(np.sqrt)A    B
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0df.apply(np.sum, axis=0)
A    12
B    27df.apply(np.sum, axis=1)
0    13
1    13
2    13

Pivot Tables



最后是Pivot Tables。 如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。 Pandas内置的pivot_table函数以DataFrame的形式创建电子表格样式的数据透视表,,它可以帮助我们快速查看某几列的数据。 下面是几个例子:非常智能地将数据按照“Manager”分了组

pd.pivot_table(df, index=["Manager", "Rep"])


或者也可以筛选属性值

pd.pivot_table(df,index=["Manager","Rep"],values=["Price"])

8个Python高效数据分析的技巧相关推荐

  1. 8 个 Python 高效数据分析的技巧

    (给视学算法加星标,提升数据技能) 编译:专知/Yingying, Jiahui,英文原作:Conor Dewey 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介 ...

  2. 送你8个Python高效数据分析的技巧(附代码)

    来源:专知 本文共1300字,建议阅读5分钟. 本文介绍的数据分析方法,不仅能够提升运行效率,还能够使代码更加"优美". 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一 ...

  3. python词汇网络分析_8个Python高效数据分析的技巧!

    文章来源于网络 来源|CSDN 这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加"优美". 定义某种列表时,写For 循环过于麻烦,幸运 ...

  4. python apply函数_8 个 Python 高效数据分析的技巧

    (给Python开发者加星标,提升Python技能) 编译:专知/Yingying, Jiahui,英文原作:Conor Dewey 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数 ...

  5. 18 个 Python 高效编程小技巧

    初识Python语言,觉得python满足了你上学时候对编程语言的所有要求.python语言的高效编程技巧让那些曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了.高级语言,如果做不到这样 ...

  6. python一行输出多个数据_Python高效数据分析的8个技巧

    原标题:Python高效数据分析的8个技巧 ​开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加"优美&q ...

  7. 如此优秀,这18个 Python 高效编程技巧真的太香了

    初识 Python 语言,觉得 Python 满足了我上学时候对编程语言的所有要求.python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了. 高级语 ...

  8. python多线程挂了_python多线程输入的问题 python高效编程技巧13(如何在线程之间实现...

    python3 创建线程时不用args传参,执行线程时为什如果创建线程时在target里就传入了参数,为什么在启动线程时,线程不是在Python多线程下,每个线程的执行方式: 有什么了不起,大不了继续 ...

  9. python高效开发实战配套源文件_分享12个python使用技巧,助你轻松掌握Python高效开发...

    前言: 欢迎大家收看分享12个python使用技巧,助你轻松掌握Python高效开发!部分代码用图片的方式呈现出来,方便各位观看与收藏,要是喜欢的话,记得一定不要忘记点赞关注嗷! 内容如下: 1. 隐 ...

最新文章

  1. java 成绩 排名算法_Java计算成绩平均值和排名
  2. Linux之Nginx
  3. 面向函数范式编程(Functional programming)
  4. CentOS 7 防止端口自动关闭
  5. [转]numpy中的np.max 与 np.maximum区别
  6. linux系统中删除一次性任务流程,Linux系统中的计划任务
  7. 如何在 iPhone、iPad、iPod touch 或 Mac 更新 HomePod?
  8. 长春技师学院计算机专业,中专院校 / 中专技校 / 长春市技师学院
  9. al换脸一键生成_使用al生成详细的课程计划
  10. 网络工程师 运维工程师 面试题
  11. python计算身份证号18位_身份证第18位(校验码)的计算方法
  12. 求知以解惑 温故而知新 ——重读哥德尔之一(开篇)
  13. 斑马Zebra LP2844 打印机驱动
  14. 金多多配资提示指数方面不用过火纠结
  15. 曾推出Anki Drive和Cozmo人工智能机器人的独角兽企业Anki谢幕
  16. 理解Java虚拟机(七)低延迟垃圾收集器-Shenandoah
  17. PCIE TLP报文
  18. Block 基本使用介绍
  19. 详解 CSS3中最好用的布局方式——flex弹性布局(看完就会)
  20. 设计可复用的OO软件

热门文章

  1. 关于SQL的Group By
  2. bambook引起的adb启动异常的问题
  3. 做Web应用程序时应该如何面向对象杂谈
  4. 作为一个职场中人的一些思考,关于做事的方式和思路
  5. centos6.5远程桌面连接(VNC\SPice)
  6. git笔记之解决eclipse不能提交jar等文件的问题
  7. Fedora17安装SSH
  8. “中序表达式”转换为“前序表达式”、“后序表达式”
  9. Android SDK Manager无法显示可供下载的未安装SDK解决方案
  10. KDD Cup 2020 Debiasing比赛冠军技术方案及在美团广告的实践