男生头像,10招!看骨灰级Pythoner怎么玩转Python,pps

admin 4个月前 ( 04-16 02:50 ) 0条评论
摘要: 本文为大家带来10个玩转Python的小技巧,学会了分分钟通关变大神!但如果你要读取很大的数据,尝试添加这个参数:nrows=5,以便在实际加载整个表之前仅读取表的一小部分。...


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_d网王之海妖的旋律types


假如必须在Python中进行数据预处理,那么这个指令能够节省一些时刻。读取表后,每列的默许数据类型能够是bool,int64,float64,object,category,timedelta64或datetime64。你能够先查看

df.dtypes.value_co龙丁敏unts()


指令分发的成果以了解数据帧的一切或许数据类型,然后履行

df.select_dtypes(include = ['float64','int64'])


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


Copy


这是一个重要的指令。假如履行以下指令弟弟by人体骨架:

import pandas as pd
df1 = pd.DataFrame({ ‘a’:[0,0,0], ‘b’: [1,1,1]})
df2 = df1
df2[‘a’] = df2[‘a’] + 1
df1.h男生头像,10招!看骨灰级Pythoner怎样玩转Python,ppsead()


你会发现df铃木隼和六眼魔神谁快1现已改变了。这是由于df2 = df1没有仿制df1的值并将其分配给df2,而是设置指向df1的指针。因而,d靓莉泥白在线咨询f2的任何改变都会导致df1发生改变 要处理这个问题,你g7506能够:

df2男生头像,10招!看骨灰级Pythoner怎样玩转Python,pps

= df1.copy()br


或许

from copy import deepcopy
df2 = deep加沙的眼泪copy(df1)

Map


这是一个能够进行简略数据转化的指令。首要界说一个字典,其间'keys'是旧值,'values'是新值。

level_map = {1: ‘high’, 2: ‘m天资胜屿edium’, 3: ‘low’g7506}
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:
retu男生头像,10招!看骨灰级Pythoner怎样玩转Python,ppsrn 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()


在上面的代码中,咱们界说了一个带有两个男生头像,10招!看骨灰级Pythoner怎样玩转Python,pps输入变量的函数,并运用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)

留意:假如能够运用其他内置函数完结相同的作业(它们一般更快),请不要运用apply。例如,假如要将列'c'舍入为整数,请履行round(df ['c'],0)而非运用apply函数:

df.apply(lambda x: round(x['c'], 0), axis = 1)

value counts


这是一个查看值散布的指令。例如,假如你想查看“c”列中每个值的或许值和频率,能够履行以下操作

df[‘c’].value_counts()


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

A. normalize = True:假如你要查看频率而不是计数。
B. d鞋交ropna = False:假如你要统计数据中包括的缺失值。
C. df['c'].value_counts().reset_index(): 假如你想将stats表转化成pandas数据帧并进行操作。男生头像,10招!看骨灰级Pythoner怎样玩转Python,pps
D. df['c'].value_counts().reset_index().sort_values(by='index') : 显现顶蘑菇啥意思按值而不是按计数排序的统计数据。


缺失值的数量


构建模型时,你或许期望扫除具有许多缺失值或满是缺失值的行。你能够运用.isnull()和.sum()来核算指定列中缺失值男生头像,10招!看骨灰级Pythoner怎样玩转Python,pps的数量。

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’xp1024down, ‘c1’, ‘c2’]]
df[‘nu辛艾萨莉之心m_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.percentil烧汤花e(谢易光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


这也是每个人都会运用的男生头像,10招!看骨灰级Pythoner怎样玩转Python,pps指令。这儿指出两个技巧。 第一个是

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


你能够运用此指令精确地打印出写入文件的前五行数据。

另一个技巧是处理混合在一起的整数和缺失值。假如列一起包括缺失值和整数,则数据类型仍将是float而不是int。天地盟导出表时,能够增加float_format ='%。0f'将一切浮点数舍入为整数。假如只想要一切列的整数输出,请运用此技巧,你将脱节一切令人苦恼的'.0'。

文章版权及转载声明:

作者:admin本文地址:http://www.gozeniwa.com/articles/844.html发布于 4个月前 ( 04-16 02:50 )
文章转载或复制请以超链接形式并注明出处泥洼地,心中的平坦道路,需要我们走过你洼地