apply函數python
㈠ python、什麼是內建函數
python內建函數總結
1. abs(x)
abs()函數返回數字(可為普通型、長整型或浮點型)的絕對值。如果給出復數,返回值就是該復數的模。例如:
>>>print abs(-2,4)
2.4
>>>print abs(4+2j)
4.472135955
2. apply(function,args[,keywords])
apply()函數將args參數應用到function上。function參數必須是可調用對象(函數、方法或其他可調用對象)。args參數必須以
序列形式給出。列表在應用之前被轉換為元組。function對象在被調用時,將args列表的運手內容分別作為獨立的參數看待。例如:
apply(add,(1,3,4))
等價於
add(1,3,4)
在以列表或元組定義了一列參數,且需要將此列表參數分別作為個個獨立參數使用的情況下,必須使用apply()函數。在要把變長參數列應用到已函數上時,apply()函數非常有用。
可選項keywords參數應是個字典,字典的關鍵字是字元串。這些字元串在apply()函數的參數列末尾處給出,它們將被用作關鍵字參數。
3. buffer(object[,offset[,size]])
如果object對象支持緩存調用介面buffer()函數就為object對象創建一個新緩存。這樣的對象包括字元串、數組和緩扒槐存。該新緩存通過使用從
offset參數值開始知道該對象末尾的存儲片段或從offset參數值開始直到size參數給出的尺寸為長度的存儲片段來引用object對象。如果沒
給出任何選項參數,緩存區域就覆蓋整個序列,最終得到的緩存對象是object對象數據的只讀拷貝。
緩存對象用於給某個對象類型創建一個更友好的介面。比如,字元串對象類型通用緩存對象而變得可用,允許逐個位元組地訪問字元串中的信息。
4. callable(object)
callable()函數在object對象是可調用對象的情況下,返回真(true);否則假(false),可調用對象包括函數、方法、代碼對象、類(在調用時返回新的實例)和已經定義『調用』方法的類實例
5. chr(i)
chr()函數返回與ASCII碼i相匹配的一個單一字元串,如下例所示:
>>>print chr(72)+chr(101)+chr(108)+chr(111)
hello
chr()函數是ord()函數的反函數,其中ord()函數將字元串轉換回ASCII整數碼,參數i的取值應在0~255范春悄友圍內。如果參數i的取值在此范圍之外,將引發ValueError異常。
6. cmp(x,y)
cmp()函數比較x和y這兩個對象,且根據比較結果返回一個整數。如果xy,則返回正數。請注意,此函數特別用來比較數值大小,而不是任何引用關系,因而有下面的結果:
>>>a=99
>>>b=int('99')
>>>cmp(a,b)
0
7. coerce(x,y)
coerce()函數返回一個元組,該元組由兩個數值型參數組成。此函數將兩個數值型參數轉換為同一類型數字,其轉換規則與算術轉換規則一樣。一下是兩個例子:
>>>a=1
>>>b=1.2
>>>coerce(a,b)
(1.0,1.2)
>>>a=1+2j
>>>b=4.3e10
>>>coerce(a,b)
((1+2j),(43000000000+0j))
8 compile(string,filename,kind)
compile()函數將string編譯為代碼對象,編譯生成的代碼對象接下來被exec語句執行,接著能利用eval()函數對其進行求值。
filename參數應是代碼從其中讀出的文件名。如果內部生成文件名,filename參數值應是相應的標識符。kind參數指定string參數中所含代碼的類別。
舉例如下:
>>>a=compile(『print 「Hello World」』,』』,』single』)
>>>exec(a)
Hello World
>>>eval(a)
Hello World
9. complex(real,[image])
Complex()函數返回一個復數,其實部為real參數值。如果給出image參數的值,則虛部就為image;如果默認image參數,則虛部為0j。
10. delattr(object,name)
delattr()函數在object對象許可時,刪除object對象的name屬性,此函數等價於如下語句:
del object.attr
而delattr()函數允許利用編程方法定義來定義object和name參數,並不是在代碼中顯示指定。
㈡ python中有將兩列數據合並為一列數據的函數么
有, 要用apply函數。一種方式:
def my_test(a, b):
return a + b
df['value'] = df.apply(lambda row: my_test(row['A'], row['B']), axis=1)
apply完了產生一列新的series。注意axis=1 不能漏了 ,表示apply的方向是縱向
㈢ python apply可以有兩個函數嗎
沒有太理解你說的涼餓函數的意思,在這里我說下這個函數的基本用法
函數格式為:apply(func,*args,**kwargs)
用途:當一個野旅函數的參數存在於一個元組或者一個字典中時,用來間接的調用這個函數,並肩元組或者字典中的參數按照順序傳遞襪脊讓給參數
解析:args是一個包含按照函數所需參數傳遞的位置參數的一個元組,是不是很拗口,意思就是,假如A函數的函數位置為
A(a=1,b=2),那麼這個元組中就必須嚴格按照這個參數的位置順序進行傳遞(a=3,b=4),而不能是(b=4,a=3)這樣的順序
kwargs是一個包含關鍵字參數的字典,而其中args如果不傳遞,kwargs需告局要傳遞,則必須在args的位置留空
apply的返回值就是函數func函數的返回值
㈣ python3.2.2使用apply函數時為什麼報NameError: global name 'apply' is not defined完整代碼如下。
已經不支持了
apply(self.func,self.args)
改為
self.func(*self.args)
㈤ 優化Python編程的4個妙招
1. Pandas.apply() – 特徵工程瑰寶
Pandas 庫已經非常優化了,但是大部分人都沒有發揮它的最大作用。想想它一般會用於數據科學項目中的哪些地方。一般首先能想到的就是特徵工程,即用已有特徵創造新特徵。其中最高效的方法之一就是Pandas.apply(),即Pandas中的apply函數。
在Pandas.apply()中,可以傳遞用戶定義功能並將其應用到Pandas Series的所有數據點中。這個函數是Pandas庫最好的擴展功能之一,它能根據所需條件分隔數據。之後便能將其有效應用到數據處理任務中。
2. Pandas.DataFrame.loc – Python數據操作絕妙技巧
所有和數據處理打交道的數據科學家(差不多所有人了!)都應該學會這個方法。
很多時候,數據科學家需要根據一些條件更新數據集中某列的某些值。Pandas.DataFrame.loc就是此類問題最優的解決方法。
3. Python函數向量化
另一種解決緩慢循環的方法就是將函數向量化。這意味著新建函數會應用於輸入列表,並返回結果數組。在Python中使用向量化能至少迭代兩次,從而加速計算。
事實上,這樣不僅能加速代碼運算,還能讓代碼更加簡潔清晰。
4. Python多重處理
多重處理能使系統同時支持一個以上的處理器。
此處將數據處理分成多個任務,讓它們各自獨立運行。處理龐大的數據集時,即使是apply函數也顯得有些遲緩。
關於優化Python編程的4個妙招,青藤小編就和您分享到這里了。如果您對python編程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於python編程的技巧及素材等內容,可以點擊本站的其他文章進行學習。