如何在Python中使用熊猫自定义函数

  介绍

本篇文章给大家分享的是有关如何在Python中使用熊猫自定义函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

自定义函数的使用

import  numpy  as  np   import  pandas  as  pd   #,todo 将自定义的函数作用到dataframe的行和列,或者本系列的行上   时间=ser1  pd.Series (np.random.randint(-10、10、5),指数=列表(& # 39;中的# 39;))   时间=df1  pd.DataFrame (np.random.randint(-10年10(4、5),指数=列表(& # 39;ACBD& # 39;),列=列表(& # 39;中的# 39;))   #,todo 定义一个函数,求其和,绝对值,最大值减最小值的差值,平方   def  func (x):   ,#打印(x)   ,打印(& # 39;- - - - - - - - - - - - - - - - & # 39;)   ,num=np.max (x) -np.min (x)=,a  abs (x)   ,b=x * * 2   ,# return  num   ,# return    return  b   打印(ser1.apply(函数)   def  func1 (x):   ,#打印(x)   ,打印(& # 39;- - - - - - - - - - - - - - - - & # 39;)   ,# num=, np.max (x) -np.min (x)=,a  abs (x)   ,b=x * * 2   ,# return  num   ,# return    return  b   打印(df1.apply (func1 axis =, 1))   #,todo 使用匿名函数实现——求其和,绝对值,最大值减最小值的差值,   打印(df1.apply (lambda  x: x * * 2,轴=1))   打印(& # 39;- - - - - - & # 39;)   打印(df1.apply (lambda  x: np.max (x) -np.min (x)=1)轴)   打印(& # 39;- - - - - - - - - - - - - - - - # 39;)   打印(df1.apply (lambda  x: abs (x)=1)轴)   #,applymap的使用   #,todo 使用applymap 因为applymap作用在每个元素上,所以不需要指定轴   print (df1.applymap (lambda  x: x * * 2))   打印(& # 39;- - - - - - - - - - - - - - - - # 39;)   打印(df1.applymap (lambda  x: abs (x)))

排序

import  numpy  as  np   import  pandas  as  pd   时间=ser1  pd.Series (np.random.randint(-10、10、10),指数=列表(& # 39;acbdfeghji& # 39;))   时间=df1  pd.DataFrame (np.random.randint(-10年10(4、5),指数=列表(& # 39;ADBC& # 39;),列=列表(& # 39;中的# 39;))   打印(ser1)   打印(df1)   打印(& # 39;- - - - - - - - - - - - - - - - - - & # 39;)   #,todo 按照索引排序,sort_index ()   #,print (ser1.sort_index()) #默认升序   #,print (ser1.sort_index(升序=False) #指定提升为降序   #,print (df1.sort_index()) #默认行升序   #,print (df1.sort_index(升序=False) #行降序   #,print (df1.sort_index(轴=1)#列升序   #,print (df1.sort_index(=1升=False,轴))#列降序   #,todo 按照值排序   print (ser1.sort_values()) #默认升序   打印(ser1.sort_values(提升=False) #指定提升为降序   #,dataframe 对象比较复杂,需要按照哪一列来进行排序   打印(df1.sort_values(=& # 39;一个# 39;))#默认列升序   打印(df1.sort_values(=& # 39;一个# 39;,提升=False)) #列降序   打印(df1.sort_values(=& # 39;一个# 39;,轴=1))#行升序   打印(df1.sort_values(=& # 39;一个# 39;,提升=False,轴=1))#行降序

数据重构

import  numpy  as  np   import  pandas  as  pd   ser1 =, pd.Series (np.random.randint(-10、10、10),指数=[列表(& # 39;aabbccddee& # 39;), (1、2、1、2、1、2、1、2、1, 2]])   时间=df1  pd.DataFrame (np.random.randint(-10年10(4、5),指数=列表(& # 39;aabb& # 39;),列=列表(& # 39;中的# 39;))   打印(ser1)   打印(df1)   打印(& # 39;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 39;)   #,todo 外层索引取的值   打印(ser1[& # 39;一个# 39;])#获取单个外层索引   打印(ser1[& # 39;一个# 39;:& # 39;e # 39;]) #获取多个外层   #,todo 内层索引取的值   打印(ser1 [: 1)   #,todo 指定外层,内层索引取的值   打印(ser1[& # 39;一个# 39;,1])   #,todo 交换分层——-swaplevel ()   print (ser1.swaplevel ())   #,todo 将Sterise转为dataframe对象外层索引作为行索引,内层索引作为列索引   print (ser1.unstack ())   #,todo 将dataframe转为Sterise对象行索引作为外层索引行索引,列索引作为内层索引列   print (df1.stack ())   #,todo  dataframe 转字典   print (df1.to_dict ())   #,todo  dataframe 转csv文件   print (df1.to_csv ())

数据连接操作

import  numpy  as  np   import  pandas  as  pd   时间=df1  pd.DataFrame (   ,{& # 39;key1& # 39;:列表(& # 39;abcdefgh& # 39;), & # 39; data1 # 39;: np.random.randint (5 10 8)}   )   时间=df2  pd.DataFrame (   ,{& # 39;key2& # 39;:列表(& # 39;defgh& # 39;), & # 39; data2 # 39;: np.random.randint (5、10、5)}   )   打印(df1)   打印(df2)   打印(& # 39;- - - - - - - - - - - - - - - - - - - - - - - - - - - - & # 39;)   #,todo 链接   #,打印(pd.merge (df1, df2=& # 39;关键# 39;))#,键相同时,通过关键连接df1, df2   #,print (pd.merge (df2 df1)) #不指定,连接df1, df2默认通过相同的列来连接   #,print (pd.merge (df1, df2=data1) # data1相同时,通过data1连接df1, df2   # todo 交集   print (pd.merge (df1 df2 left_on=& # 39; key1& # 39;, right_on=& # 39; key2& # 39;))   # todo 并集   print (pd.merge (df1, df2=& # 39;外# 39;,left_on=& # 39; key1& # 39;, right_on=& # 39; key2& # 39;))   # todo 左连接   print (pd.merge (df1, df2=& # 39;左# 39;,left_on=& # 39; key1& # 39;, right_on=& # 39; key2& # 39;))   # todo 右连接   print (pd.merge (df1, df2=& # 39;对# 39;,left_on=& # 39; key1& # 39;, right_on=& # 39; key2& # 39;))   #,todo 通过行索引来指定   print (pd.merge (df1 df2 left_on=& # 39; data1 # 39;, right_index=True)) # left_on指定左表的列索引为外健,right_index作业为右表的行索引作为外检   打印(pd.merge (df1、df2 left_index=True, right_index=True)) # left_index, right_index,默认的情况下,将两张表按照航索引的相同情况,合成一条数据   print (pd.merge (df1, df2=& # 39;左# 39;,left_index=True, right_index=True)) #,按照行进行连接,也能指定链接方式

如何在Python中使用熊猫自定义函数