介绍
本篇文章给大家分享的是有关如何在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中使用熊猫自定义函数