python 使用小技巧(動態更新)

2021-10-11 11:04:14 字數 2797 閱讀 3301

1、 找出含有特定字串的行

res=res[res['choice'].str.contains("2、找出第乙個字元是 『9』 的行res=res[res['choice'].str[0] == '9']
3、提高多層行索引的 dataframe 的搜尋效率
col

one two

c u 9

對於以上結構的兩層行索引 dataframe,採用 data.loc[(c, u), col] 取資料時,一般情況下會觸發如下警告:

performancewarning: indexing past lexsort depth may impact performance.
這是因為索引沒有排序,而是否排序對 dataframe 的檢索效率有較大影響,只要按如下:

data = data.sort_index()
給索引排個序就可消除該警告。

4、pandas 與 numpy 計算標準差時的差別

pandas.std 預設 ddof=1,就是無偏的估計(n-1)

numpy.std 預設 ddof=0,就是有偏的估計(n)

在混合使用 numpy 和 pandas 時注意預設值的差異。

5、資料輸出時列無法對齊

in[76]: ires_df

out[76]:

行業因子平均解釋力

交通運輸 0.007395

傳媒 0.014366

農林牧漁 0.005049

醫藥 0.019094

商貿零售 0.002312

國防軍工 0.003610

基礎化工 0.007108

目前 pandas 對中文的支援還不完美,當列名用中文之後,輸出時資料沒有對齊,改進辦法就是對pandas的輸出引數進行設定。

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', true)

pd.set_option('display.unicode.east_asian_width', true)

ires_df

行業因子平均解釋力

交通運輸 0.007395

傳媒 0.014366

農林牧漁 0.005049

醫藥 0.019094

商貿零售 0.002312

國防軍工 0.003610

基礎化工 0.007108

改進之後的格式有所改善,但是仍然有繼續改進的空間。

1、一維陣列的轉置

import numpy as np

a = np.array([1, 2, 3, 4, 5])

print(f'1.原始陣列 a = ')

print(f'2.原始陣列的常規轉置 a.t = ')

print(f'3.原始陣列的標準轉置 a.reshape(len(a), 1) = ')

print(a.reshape(len(a), 1))

print(f'4.原始陣列的快捷轉置 a[:, none] = ')

print(a[:, none])

out[45]:

1.原始陣列 a = [1 2 3 4 5]

2.原始陣列的常規轉置 a.t = [1 2 3 4 5]

3.原始陣列的標準轉置 a.reshape(len(a), 1) =

[[1]

[2][3]

[4][5]]

4.原始陣列的快捷轉置 a[:, none] =

[[1]

[2][3]

[4][5]]

1、批量賦值

有乙個字典,需要根據這個字典來構建乙個物件。

class person:

def __init__(self,_obj):

self.name = _obj['name']

self.age = _obj['age']

self.energy = _obj['energy']

self.gender = _obj['gender']

self.email = _obj['email']

self.phone = _obj['phone']

self.country = _obj['country']

利用__dict__的特性,上面的類可以用如下的代替,**量大大減少:

class person:

def __init__(self,_obj):

self.__dict__.update(_obj)

(筆記:簡單地說,就是結構相同的兩個 dict 變數之間賦值,用dict整體賦值效率最高)

免了在__init__方法中類似於self.something = something的方法,使用自動化例項變數

其中的__init__方法傳入的引數args為dict對應於實體model中的key,value

python日常小技巧 更新ing

目錄 python將多個list合併為乙個list sum list1,list2.listn python輸出大寫字母 小寫字母的列表 list 2020.08.09列表推導式中實現if elif else ascii碼值與字母對應關係如下 參考 字母 ascii碼值 a 65 z 90 a 97...

IAR 使用小技巧 持續更新

需求 有時候我們需要複製幾行 的後半部分,不需要複製前半部分。方法 按住alt鍵,再用滑鼠拖動就可以複製和貼上後半部分 燒錄程式 ctrl d 全速執行 f5 單步執行 f10 注釋多行 ctrl k 單行也是這個 取消注釋 ctrl shfit k 燒錄程式 ctrl d 進入除錯程式 退出除錯 ...

MacBook使用小技巧(持續更新)

1.如何顯示所有檔案?2.視窗操作 快捷鍵作用 視窗最大化 最小化 command control f 隱藏當前應用程式所有視窗 command h 隱藏其他應用程式所有視窗 command option h 關閉當前視窗 command w 關閉視窗並退出應用 command q 開啟 關閉啟動臺...