10招!看骨灰级Pythoner如何玩转Python?

【学会一时间爽,一直学一直爽!】

pandas是基于numpy构建的,使数据分析工作变得更快更简单的高级数据结构和操作工具。本文为大家带来10个玩转Python的小技巧,分分钟让你通关变大神!

read_csv

每个人都知道这个命令。但如果你要读取很大的数据,尝试添加这个参数:nrows = 5,以便在实际加载整个表之前仅读取表的一小部分。然后你可以通过选择错误的分隔符来避免错误(它不一定总是以逗号分隔)。

(或者,你可以在linux中使用'head'命令来检查任何文本文件中的前5行(例如):head -c 5 data.txt)

然后,你可以使用df.columns.tolist()来提取列表中的所有列,然后添加usecols = ['c1','c2',...]参数以加载所需的列。此外,如果你知道几个特定列的数据类型,则可以添加参数dtype = {'c1':str,'c2':int,...},以便数据加载得更快。此参数还有另一个优点,如果你有一个同时包含字符串和数字的列,那么将其类型声明为字符串是一个好选择,这样就可以在尝试使用此列作为键去合并表时不会出错。

select_dtypes

如果必须在Python中进行数据预处理,那么这个命令可以节约一些时间。读取表后,每列的默认数据类型可以是bool,int64,float64,object,category,timedelta64或datetime64。你可以先查看

df.dtypes.value_counts()命令分发的结果以了解数据帧的所有可能数据类型,然后执行df.select_dtypes(include = ['float64','int64'])

选择仅具有数字特征的子数据帧。

Copy

这是一个重要的命令。如果执行以下命令:

import pandas as pd

df1 = pd.DataFrame({ ‘a’:[0,0,0], ‘b’: [1,1,1]})

df2 = df1

df2[‘a’] = df2[‘a’] + 1

df1.head()

你会发现df1已经改变了。这是因为df2 = df1没有复制df1的值并将其分配给df2,而是设置指向df1的指针。因此,df2的任何变化都会导致df1发生变化要解决这个问题,你可以:

df2 = df1.copy()

或者

from copy import deepcopy

df2 = deepcopy(df1)

Map

这是一个可以进行简单数据转换的命令。首先定义一个字典,其中'keys'是旧值,'values'是新值。

level_map = {1: ‘high’, 2: ‘medium’, 3: ‘low’}

df[‘c_level’] = df[‘c’].map(level_map)

举几个例子:True,False为1,0(用于建模); 定义水平; 用户定义的词法编码。

apply or not apply?

如果我们想创建一个新的列,并将其他列作为输入,那么apply函数有时非常有用。

def rule(x, y):

if x == ‘high’ and y > 10:

return 1

else:

return 0

df = pd.DataFrame({ 'c1':[ 'high' ,'high', 'low', 'low'], 'c2': [0, 23, 17, 4]})

df['new'] = df.apply(lambda x: rule(x['c1'], x['c2']), axis = 1)

df.head()

在上面的代码中,我们定义了一个带有两个输入变量的函数,并使用apply函数将其应用于列'c1'和'c2'。

但“apply函数”的问题是它有时太慢了。如果你想计算两列“c1”和“c2”的最大值,你可以:

df[‘maximum’] = df.apply(lambda x: max(x[‘c1’], x[‘c2’]), axis = 1)

但你会发现它比这个命令慢得多:

df[‘maximum’] = df[[‘c1’,’c2']].max(axis =1)

Takeaway:

如果可以使用其他内置函数完成相同的工作(它们通常更快),请不要使用apply。例如,如果要将列'c'舍入为整数,请执行round(df ['c'],0)而非使用apply函数。

value counts

这是一个检查值分布的命令。例如,如果你想检查“c”列中每个值的可能值和频率,可以执行以下操作

df[‘c’].value_counts()

它有一些有用的技巧/参数:

A. normalize = True:如果你要检查频率而不是计数。

B. dropna = False:如果你要统计数据中包含的缺失值。

C. sort = False:显示按值而不是按计数排序的统计数据。

D. df ['c] .value_counts()。reset_index():如果你想将stats表转换成pandas数据帧并进行操作。

缺失值的数量

构建模型时,你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()来计算指定列中缺失值的数量。

import pandas as pd

import numpy as np

df = pd.DataFrame({ ‘id’: [1,2,3], ‘c1’:[0,0,np.nan], ‘c2’: [np.nan,1,1]})

df = df[[‘id’, ‘c1’, ‘c2’]]

df[‘num_nulls’] = df[[‘c1’, ‘c2’]].isnull().sum(axis=1)

df.head()

选择具有特定ID的行

在SQL中,我们可以使用SELECT * FROM ... WHERE ID('A001','C022',...)来获取具有特定ID的记录。如果想用Pandas做同样的事情,你可以

df_filter = df[‘ID’].isin([‘A001’,‘C022’,...])

df[df_filter]

Percentile groups

你有一个数字列,并希望将该列中的值分类为组,例如将列的前5%,分为组1,前5-20%分为组2,前20%-50%分为组3,最后50%分为组4。当然,你可以用pandas.cut来做,但这里提供另一个选择:

import numpy as np

cut_points = [np.percentile(df[‘c’], i) for i in [50, 80, 95]]

df[‘group’] = 1

for i in range(3):

df[‘group’] = df[‘group’] + (df[‘c’] < cut_points[i])

# or <= cut_points[i]

这个指令使计算机运行的非常快(没有使用应用功能)。

to_csv

这也是每个人都会使用的命令。我想在这里指出两个技巧。第一个是

print(df[:5].to_csv())

你可以使用此命令准确地打印出写入文件的前五行数据。

另一个技巧是处理混合在一起的整数和缺失值。如果列同时包含缺失值和整数,则数据类型仍将是float而不是int。导出表时,可以添加float_format ='%。0f'将所有浮点数舍入为整数。如果只想要所有列的整数输出,请使用此技巧- 你将摆脱所有令人苦恼的'.0'。

————————————————————————

更多AI科技资讯&干货,欢迎关注【读芯术】

python中usecols_Python学习路线?相关推荐

  1. python自学攻略-大牛整理!Python学习方法和学习路线,看完茅塞顿开!

    原标题:大牛整理!Python学习方法和学习路线,看完茅塞顿开! Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团 ...

  2. python学习图解_大牛整理!Python学习方法和学习路线,看完茅塞顿开!

    原标题:大牛整理!Python学习方法和学习路线,看完茅塞顿开! Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团 ...

  3. python学习-大牛整理!Python学习方法和学习路线,看完茅塞顿开!

    原标题:大牛整理!Python学习方法和学习路线,看完茅塞顿开! Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团 ...

  4. (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  5. Python人工智能完整学习路线

    Python 是人工智能(机器学习)的首选编程语言,它拥有众多模块,能完成人工智能开发的所有环节,没有任何一种语言使用起来如此顺手. Python 人工智能的学习路线如下所示: 1) 爬虫 要学用 P ...

  6. Python人工智能完整学习路线,让你惊艳到爆

    Python 是人工智能(机器学习)的首选编程语言,它拥有众多模块,能完成人工智能开发的所有环节,没有任何一种语言使用起来如此顺手. Python 人工智能的学习路线如下所示: 1) 爬虫 要学用 P ...

  7. python全栈学习路线

    人工智能时代,想要从事编程行业,最佳的学习语言是什么?当然是Python!Python入门简单.功能强大,已成为各大企业首选开发语言,也吸引了无数有志学子投身学习.下面是小编为您整理的关于python ...

  8. python气象科研学习路线和常用技巧

    python气象科研学习路线和重点知识 前言 经过一个学期的气象相关编程,觉得气象常用的一些库在这里总结一下,学习路线是我根据自己经验总结的,有大佬觉得哪里需要补充的可以私我.我也在不断学习,之后有新 ...

  9. 2023最新天津python培训机构学习路线整理

    2023最新天津python培训机构学习路线整理.目前开设python培训的机构不占少数,学习方式多样化.但重点的还是培训机构的整体质量,有很多培训课程体系专业,但课堂内容却差强人意,所以很多pyth ...

最新文章

  1. 让烦恼走开 两招让移动硬盘插拔自如
  2. Netty和RPC框架线程模型分析
  3. 用户画像,如何驱动产品链路优化?
  4. ffmpeg 配置与编译
  5. oracle12c ora 12545,11gR2 ORA-12545故障处理
  6. Windows进程管理类封装
  7. New Monday
  8. 转电感和磁珠两兄弟的差别
  9. MULTISIM仿真
  10. win10计算机管理员权限删除,win10需要管理员权限删除文件怎么办?获取管理员权限删除文件夹...
  11. python一维数组定义,python如何定义数组
  12. 前15天mysql_15天快速学习数据库Mysql基础操作命令
  13. 传感器系列之4.10 酒精传感器
  14. Vue.js仿饿了么外卖App--(4)商品详情页实现
  15. 肖博老师高中数学必备知识点总结最全版
  16. 热度比肩以太坊的Cosmos生态现在发展得怎么样了?
  17. Syntax error on token(s), misplaced construct(s)
  18. 优链时代荣获“2022 数字技术应用创新奖”|2022世界数字经济大会
  19. CentOS7安装MySQL
  20. foxmail 发不出邮件,被电脑管家云查杀引擎检测出带有病毒:Win32.Trojan.Agent.hryf ...

热门文章

  1. B/S开发框架Web安全问题及防范规范之挂马和WebShell
  2. 一、SMARTY安装于配置文件
  3. 视频监控、直播——基于opencv,libx264,live555的RTSP流媒体服务器 (zc301P摄像头)By Chain_Gank...
  4. Castle ActiveRecord学习实践(8)HQL查询
  5. Linux Mint Root
  6. linux主机添加discuz伪静态规则,Discuz! X2.5论坛win主机与linux主机伪静态设置方法...
  7. 阿里云 redis mysql_Redis 和 MySQL数据一致
  8. opengl显示英文_OpenGL-Using Shaders(使用Shader)
  9. 如何使用php写爬虫,PHP如何开发简单爬虫
  10. 简单获取PNG免扣素材,提升设计效率