python常用函数操作 python中的常用函数

python3--内置函数

python的常用内置函数

目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、网页空间、网站托管运营、企业网站设计、闽清网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

1.abs() 函数返回数字的绝对值

abs(-40)=40

2. dict() 函数用于创建一个字典

dict()

{}      #创建一个空字典类似于u={},字典的存取方式一般为key-value

例如u = {"username":"tom",  "age":18}

3. help() 函数用于查看函数或模块用途的详细说明

help('math')查看math模块的用处

a=[1,2,3,4]

help(a)查看列表list帮助信息

4.dir()获得当前模块的属性列表

dir(help)

['__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

5.min() 方法返回给定参数的最小值 /参数可以为序列

a=  min(10,20,30,40)

a

10

6. next() 返回迭代器的下一个项目

it = iter([1, 2, 3, 4, 5])

next(it)

1

next(it)

2

7. id() 函数用于获取对象的内存地址

a=12

id(a)

1550569552

8.enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

a=["tom","marry","leblan"]

list(enumerate(a))

[(0, 'tom'), (1, 'marry'), (2, 'leblan')]

9. oct() 函数将一个整数转换成8进制字符串

oct(15)

'0o17'

oct(10)

'0o12'

10. bin() 返回一个整数 int 或者长整数 long int 的二进制表示

bin(10)

'0b1010'

bin(15)

'0b1111'

11.eval() 函数用来执行一个字符串表达式,并返回表达式的值

eval('2+2')

4

12.int() 函数用于将一个字符串会数字转换为整型

int(3)

3

int(3.6)

3

int(3.9)

3

int(4.0)

4

13.open() 函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写

f=open('test.txt')

14.str() 函数将对象转化为适于人阅读的形式

str(3)

'3'

15. bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False

bool()

False

bool(1)

True

bool(10)

True

bool(10.0)

True

16.isinstance() 函数来判断一个对象是否是一个已知的类型

a=5

isinstance(a,int)

True

isinstance(a,str)

False

17. sum() 方法对系列进行求和计算

sum([1,2,3],5)

11

sum([1,2,3])

6

18. super() 函数用于调用下一个父类(超类)并返回该父类实例的方法。super 是用来解决多重继承问题的,直接用类名调用父类方法

class   User(object):

  def__init__(self):

class Persons(User):

        super(Persons,self).__init__()

19. float() 函数用于将整数和字符串转换成浮点数

float(1)

1.0

float(10)

10.0

20. iter() 函数用来生成迭代器

a=[1,2,3,4,5,6]

iter(a)

for i in iter(a):

...         print(i)

...

1

2

3

4

5

6

21.tuple 函数将列表转换为元组

a=[1,2,3,4,5,6]

tuple(a)

(1, 2, 3, 4, 5, 6)

22.len() 方法返回对象(字符、列表、元组等)长度或项目个数

s = "playbasketball"

len(s)

14

a=[1,2,3,4,5,6]

len(a)

6

23. property() 函数的作用是在新式类中返回属性值

class User(object):

 def __init__(self,name):

          self.name = name

def get_name(self):

          return self.get_name

@property

 def name(self):

         return self_name

24.type() 函数返回对象的类型

25.list() 方法用于将元组转换为列表

b=(1,2,3,4,5,6)

list(b)

[1, 2, 3, 4, 5, 6]

26.range() 函数可创建一个整数列表,一般用在 for 循环中

range(10)

range(0, 10)

range(10,20)

range(10, 20)

27. getattr() 函数用于返回一个对象属性值

class w(object):

...             s=5

...

a = w()

getattr(a,'s')

5

28. complex() 函数用于创建一个复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数

complex(1,2)

(1+2j)

complex(1)

(1+0j)

complex("1")

(1+0j)

29.max() 方法返回给定参数的最大值,参数可以为序列

b=(1,2,3,4,5,6)

max(b)

6

30. round() 方法返回浮点数x的四舍五入值

round(10.56)

11

round(10.45)

10

round(10.45,1)

10.4

round(10.56,1)

10.6

round(10.565,2)

10.56

31. delattr 函数用于删除属性

class Num(object):

...    a=1

...    b=2

...    c=3.

.. print1 = Num()

print('a=',print1.a)

a= 1

print('b=',print1.b)

b= 2

print('c=',print1.c)

c= 3

delattr(Num,'b')

print('b=',print1.b)

Traceback (most recent call last):  File "", line 1, inAttributeError: 'Num' object has no attribute 'b'

32. hash() 用于获取取一个对象(字符串或者数值等)的哈希值

hash(2)

2

hash("tom")

-1675102375494872622

33. set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

a= set("tom")

b = set("marrt")

a,b

({'t', 'm', 'o'}, {'m', 't', 'a', 'r'})

ab#交集

{'t', 'm'}

a|b#并集

{'t', 'm', 'r', 'o', 'a'}

a-b#差集

{'o'}

python中set的用法小结

python提供了常用的数据结构,其中之一就是set,python中的set是不支持索引的、值不能重复、无需插入的容器。

简单记录下set常用的操作函数:

1.新建一个set:

set("Hello"),这样会转成单个字符的值进行插入,结果是'H','e','l','o','l'因为重复只能插入一次。

2.增加一个元素:

add()用于增加一个元素值,

update([]),用于增加多个元素值,参数为list,注意如果用add增加多个值,会报参数类型错误。

3.删除一个元素:

remove()用于删除一个set中的元素,这个值在set中必须存在,如果不存在的话,会引发KeyError错误。

discard()用于删除一个set中的元素,这个值不必一定存在,不存在的情况下删除也不会触发错误。

4.随机删除函数:

set提供了一个pop()函数,这个函数随机返回一个元素值,然后把这个值删除,如果set为空,调用这个函数会返回Key错误。

5.清空函数:

clear(),将set全部清空。

6.测试单个元素在集合内是否存在:

in 或者 not in 如果需要判断一个值在集合内是否存在,in就能满足要求,例如2 in set_num 如果存在则返回True,否则返回False。

7.测试两个集合是否包含,子集操作:

issubset和issuperset,

s1.issubset(s2)  :测试是否 s1 中的每一个元素都在 s2 中,运算符操作为 s1=s2;

s2.issuperset(s1)  :测试是否 s1 中的每一个元素都在 s2 中,运算符操作为 s1=s2;//注意是s2调用,参数为s1.

8.集合的并集:

union s1.union(s2)  :返回一个新集合,新集合包含s1,s2的所有元素,等价的运算符为 | 。

9.集合的交集:

intersection,s1.intersection(s2),返回s1和s2中相同部分

10.其他操作:

s1.difference(s2):包含s1中有,但是s2没有的元素的集合。

s1symmetric_difference(s2):包含s1和s2中不相同的元素的集合。

以上只是一部分操作的描述,如果有错误,敬请指正。

python中print函数的用法

print()函数用于打印输出,是python中最常见的一个内置函数。

print()函数的语法如下:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)。

将"objects"打印输出至"file参数"指定的文本流,以"sep参数"分隔开并在末尾加上"end参数"。"sep"、"end "、"file"和"flush"必须以关键字参数的形式给出。flush关键字参数是在phthon3.3版后增加的。

所有非关键字参数都会被转换为字符串,就像是执行了str()一样,并会被写入到流,以“sep参数“且在末尾加上“end参数“。“sep参数“和“end参数“都必须为字符串;它们也可以为“None“,这意味着使用默认值。如果没有给出“objects参数“,则print()将只写入“end参数“。

ython print()函数:

print()方法用于打印输出,最常见的一个函数。

在Python3.3版增加了flush关键字参数。

print在Python3.x是一个函数,但在Python2.x版本不是一个函数,只是一个关键字。

pandas常用函数汇总

pandas官方文档:

对常用函数做了汇总,每个函数的参数可能不是全的,但是常用的,不常用的没总结,如有问题,请不吝赐教,谢谢!

1、创建Series

  通用函数:pd.Series(values,index)

1)pd.Series([1,2,3],index=[‘a’,‘b’,‘c‘])

2)pd.Series(np.array([1,2,3]),index=[‘a’,‘b’,‘c‘])

3)pd.Series({ 'a':1,  'b':2,  'c':3})

    Series转字典:Series.to_dict()

说明:Series的values参数是python中常见的一维数据类型。

2、属性

1)Series.values ---array([1,2,3])

       Series的values是array类型

2)Series.index---index([‘a’,‘b’,‘c‘])

       未指定index时,自动生成 0-(N-1)的整数索引,

       指定 index时,使用指定索引。

3、Series的索引与切片

   Series[0] / Series['a']  : Sereis可以位置索引或标签索引,也可以进行切片操作

1、创建DataFrame

1) 创建DataFrame的通用函数:

df = pd.DataFrame(values,index,columns)

pd.dataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])

pd.dataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])

pd.dataFrame('bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9],index=['a','b','c'])

说明:创建方法与Sries类似,Series的values参数是python中常见的一维数据类型,DataFrame的values参数是python中常见的二维数据类型。

2) 通过网页中复制数据快捷创建

    import webbrowser

    link = ''

    webbrowser.open(link)

    打开界面进行复制,将数据复制到粘贴板中

    df = pd.read_clipboard()   #从粘贴板中读取数据

3)通过Series创建DataFrame

    df = pd.DataFrame([s1,s2,s3],columns=['bj','sh','sz'])

    注意:单独的s1,s2,s3是纵向排列的的Series,但是在DataFrame中是横向排列的。

    自己总结:Series除了打印出来是Series格式外,其他时候可以直接当作list来操作。

2、属性

1)df.columns

    通过columns生成新的DataFrame

    df_new = pd.DataFrame(df,columns=['x1','x2'])

    或者df_new = df[['x1','x2']]

2)df.shape  显示行列数

3)df.head()   默认显示前5行

4)df.tail()     默认显示后5行

3、获取DataFrame的列

1)获取DataFrame某一列

      df.x1或df['x1']:返回值是Series,可以理解为一个DataFrame是由多个Series组成的。

  2) 获取DataFrame某几列

      df_new = df[['x1','x2','x3']]

4、为某列赋值

  1) df['x1'] = range(10)

  2) df['x1'] = numpy.arange(10)

  3) df['x1'] = pd.Series(np.arange(10))

  说明:类似于创建Series

5、为某列对应的特定行重新赋值

    df['x1'] = pd.Series([2,3],index=[0,1])

    将列为x1,行索引为0和1的值改为2,3

6、获取DadaFrame的行

  for row in DataFrame.iterrows():

          print(row[0],row[1])

  #每个row是一个元祖,包含2个元素,row[0]是整型索引,row[1]是Series,所以从行的角度也可以看出,一个DataFrame是由多个Series组成的。

7、DataFrame的转置

  df_new = df.T

1、粘贴板的io

  df = pd.read_clipboard()

  df.to_clipboard()

2、csv的io

   df.to_csv('xxx.csv')

   df = pd.read_csv('xxx.csv')

3、json的io

   df.to_json()

   pd.read_json(df.to_json())

4、excel的io

    df.to_excel('xx.xlsx')

    df = pd.read_excel('xx.xlsx')

5、df = pd.read_sql('')

    df.to_sql('')

1、iloc

  sub_df = df.iloc[10:20,:]  选取DataFrame的10-20行,所有列数据

  sub_df = df.iloc[10:20,0:2]

  说明:iloc函数是位置索引,与索引的名字无关。

2、loc

  sub_df = df.loc[10:20,:'movie_name']

  说明:loc是标签索引,10,20,'movie_name'  都是索引名字,与位置无关。

1、Series.reindex(index=['x1','x2','x3'],fill_value=10)

  将df重新索引,并且将NaN空值用10进行填充

2、Series.reindex(index=range(15),method='ffill')

前项填充,后面的值用前面的值进行填充

通过reindex想到,如果想新增一个空列或者空行,可以用reindex方法,同样地,想减少某些行或者某些列,也可以用reindex方法。

  继reindex之后删除行列的函数操作

  Series.drop('A')   #删除'A'所对应的值

  DataFrame.drop(label,axis) 

  label可以是行名也可以是列名,label是行的话axis是0,label是列的话axis是1。

** 删除行还可以用 del df['A']

nan是numpy的一种数据类型,np.nan,float类型

任何数据与nan的运算结果都是nan

1、nan in Series

  Series.isnull()  --返回value为True或者False的Series

  Series.notnull()  --返回value为True或者False的Series

  Series.dropna()  --返回删除nan值后的Series

  Series.fillna(method='ffill')  --前项插值,按照前面的值填充后面的空值

2、nan in DataFrame

  df.isnull()  --返回value为True或者False的DataFrame

  df.notnull()  --返回value为True或者False的DataFrame

  df.dropna(axis=0/1,how='any/all',thresh=None)

  说明:axis表示删除行为nan或者列为nan;

            any表示只要有一个为空,all表示行中的每个元素或者列中的每个元素为空;

            thresh是阈值的意思,表示某行或者某列nan的个数达到阈值的个数时才删除该行或该列。

  df.fillna(value=1)  ---所有的空值都填充为1

  df.fillna(value={0:0,1:1,2:2}) ---将0列的空值填为0,1列的空值填为1,2列的空值填为2,默认为填充列

  注意:fillna和dropna的特点,生成新的DataFrame,原来的DataFrame不变。

1、多重索引介绍

Series = pd.Series(np.random.randn(6),index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])

'1','2'为一级索引,'a','b','c'为二级索引

df 可以看做是索引的'1','2'的Series

Series['1']  --Series

Series['1']['a']  --value

Series[:,'a'] --选择'1'和'2'中的'a'对应的值

2、多重索引格式转为二维DataFrame

df = Series.unstack() --转为二维DataFrame

3、多重索引在DataFrame中的操作

1、 map函数与apply函数、applymap函数的区别:

  1)map函数对Series中的每个元素作用;

  2)applymap函数对DataFrame中的每个元素作用;

  3)apply函数对对DataFrame和Series的一列做整体运算。

2、Series.replace(to_replace=[2,3,4],values=[20,30,40])  替换Series中多个值

Series.replace({1:10,2:20})  将索引为1的值替换为10,将索引为2的值替换为20

df.sum()  --默认按照列进行求和,nan的值被忽略

df.min()  --默认按照列求最小值

df.max()  --默认按照列求最大值

df.mean()  --默认按照列求平均值

df.describe()  --默认按照列进行描述

df.sum(axis=1)  --按行求和,nan的值被忽略

#axis=0表示对横轴进行操作,但是运算中表现为纵轴操作

#axis=1表示对纵轴进行操作,但是运算中表现为横轴操作

bins = [0,59,70,80,100],bins是分割范围

score_cat = pd.cut(Series,bins)  ---得到catgory类型的数据

DataFrame的分箱技术很棒啊!

pd['catgory'] = pd.cut(df['a'],bins=[0,59,70,80,100],labels=['low','ok','good','great'])

--新增一列,将a列的值按照labels进行分类标记,good!!!

#生成长度为3的随机字符串  pd.util.testing.rands(3)

1、按照一列分组

  g = df.groupby('city')

  g是分组类型数据,打印不出来,所以看不到,但是有属性和方法可以间接的了解

1) g.groups  --得到分的几个组,和每个组包含的索引

2)g.get_group('BJ')  --得到'BJ'所对应的组

3)groupby = split +apply +combine

       g.mean()  --求每组的平均值

       g.max()   --求每组的最大值

       g.min()   --求每组的最小值

       g.count()

       g.describe()

  4)g是一个可迭代对象,可以用list函数将其转化为list

      list(g) -- [('组名1',DataFrame1),('组名2',DataFrame2),(),()]

      dict(list(g))  --将其转化为字典

  同时可以通过for循环进行遍历操作:for item,desc in g:print(item,desc)

  #怪不得分组后不是DataFrame,因为元组的第一个元素是'分组名'。

2、按照多列分组

  g_new = df.groupby(['city','wind'])

  得到生成器((('分组1','分组2'),DataFrame),(),()...)

  g_new.get_group(('分组1','分组2'))

  for (name_1,name_2),group in g_new:

          print((name_1,name_2),group)

g.mean()  --求每组的平均值

与g.agg('mean')方法一样

pd.pivot_table(df,index=['',''],aggfuc='sum',values=['',''])

index是分组的组名,values是透视表呈现结果的列,columns是values下的分解

#感觉透视表呈现的结果就是groupby+agg后的结果

#分析者需要对数据结构有一定的了解

df.sort_values(by='',ascending=True/False)[:10]  df可以索引

df.value_counts()  --按值计数

df.['a'] = df['b'].apply(lambda x:x0)  --DataFrame中的True/False

通过g.size()可以看到被groupby之后的数据,得到的是一个Series

1、Series的排序:

1)对值进行排序

Series.sort_values()  ---直接对Series的值进行排序

2)通过索引进行排序

Series.sort_index() 

#默认都是升序排列

2、DataFrame的排序

df.sort_values(by='')  --按照某列的顺序进行排序

df['a'].sort_values()  --返回对a列数据的排序结果,只返回a列

1、df.index = Series(['a','b','c'])  直接对index赋予新值

2、df.index = df.index.map(str.upper)

map函数中只传入新的函数名即可

3、df.rename(index=str.upper,columns=str.lower)

  或者传递字典,进行一一转换

pd.merge(df1,df2,on=None,how='left/right/inner/outer')

pd.merge(df1,df2)  --没有on参数默认先找相同的columns,然后在columns下找相同的values

pd.merge(df1,df2,on='columns')  --on参数是指按照指定列进行merge

left:表示以左边的数据表为基准,进行填充右面的数据

right:表示以右边的数据表为基准,填充左边的数据

outer:以on的指定列的所有值为基准,填充两边的数据

inner:默认inner,相同on指定的columns下的相同values对应的左右两边的数据

1、concat拼接

pd.concat([Series1,Series2])

pd.concat([df1,df2])  -- 上下叠加,将没有的列进行填充

2、combine组合

Series1.combine_first(Series2)  --用Series2的值去填充Series1中为空的值

df1.combine_first(df2)  ---用df2将df1中的空值填充

df['A'] = df['A'].apply(str.upper)  ---apply函数中也只输入函数名

len(df)  --求df的长度

len(df['a'].unique())  --查看a列中不重复数据的多少

Series.duplicated()  --返回一列True/False的Series

Series.drop_duplicates()  --删除重复值

df.drop_duplicates('a',keep='first/last')

df.drop_duplicates()  --删除完全重复的行

参数:'a'表示以a列为基准,删除重复值

          first表示保留第一个,last表示保留最后一个

data_list = pd.date_range(start,end,period='D',freq)

period='D',以天为单位

freq = 'W' 以周为单位

freq = 'W-Mon'以每周一位单位

freq = '5H'  以5h为单位

以data_range作为索引提取数据比较简单

df[datetime(2017,9,1)]

df['2017-09-01']

df['20170901']

df['201709']

对时间序列数据进行分组聚合操作:

s1.resample('M').mean()  --以月为单位进行采样,然后求每组的平均值

s1.resample('H').ffill()  --前项填充

s1.resample('H').bfill()  --后项填充

补充:1)jupyter中可以执行linux命令,太棒了!

            !ls

            !more xxx.csv

            !pwd  等等

       2)jupyter 查看函数帮助的快捷键:摁住shift + tab  棒!!!

Python常用函数三有哪些?这7个函数使用频率最高,总算搞明白了

1.1 例如:print(hex(2))案例

1.2 输出函数:print(hex(2))

1.3 输出结果:0x2

1.4 解析说明:返回16进制的数。

2.1 例如:print(chr(10))案例

2.2 输出函数:print(chr(10))

2.3 输出结果:0o12

2.4 解析说明:返回当前整数对应的ASCll码

3.1 例如:print(ord("b"))案例

3.2 输出函数:print(ord("b"))

3.3 输出结果:98

3.4 解析说明:返回当前ASCll码的10进制数

4.1 例如:print(chr(97))

4.2 输出函数:print(chr(97))

4.3 输出结果:b

4.4 解析说明:返回当前ASCll码的10进制数。

案例一:给你一个字符串,s = 'hello kitty'

1.1 输出函数:print(s.capitalize())

1.2 输出结果:0x2

1.3 解析说明:返回16进制的数。

2.1输出函数:print(s.replace('kitty','kuang'))

2.2 输出结果:hello kuang

2.3 解析说明:替换功能,将kitty换成kuang。

2.4 输出函数:print(s.replace('4','KK'))

2.5 输出结果:12KK12KK

2.6 解析说明:所有的4都替换成KK

2.7 输出函数:print(s.replace('4','KK'))

2.8 输出结果:12KK12KK124

2.9 解析说明:将前两个的4替换成go

案例一:给你一个字符串,ip = '192.168.1.1'

3.1 输出函数:print(ip.split(','))

3.2 输出结果:['192.168.1.1']

3.3 解析说明:将字符串分割成列表

案例一:给你一个字符串,ip = '192.168.1.1'

3.3 输出函数:print(ip.split(',',2))

3.4 输出结果:['192.168.1.1']

3.5 解析说明:从第二个开始分割成列表


分享文章:python常用函数操作 python中的常用函数
本文来源:http://scjbc.cn/article/hgcgid.html

其他资讯