日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python not in range1002无标题_Python中偶尔遇到的细节疑问(一):去除列名特殊字符、标准差出现nan、切片索引可超出范围、range步长、众数...

發布時間:2025/3/15 python 41 豆豆

1. Pandas讀取csv或excel數據時,很可能遇到的columns中,列名會帶有特殊字符,例如:空格、

、、雙空格、引號等等,如果不想手動修改的話,可以df.rename()來解決。

df =pd.read_excel(data_path)

df_= df.rename(columns=lambda x: x.replace(" ","").replace(' ','').replace(" ","").replace(r"","").replace(r"",""))

如果還有其他的字符,也可以類似解決。

2.python計算標準差時,出現nan:這個原因可能是原始數據都是nan;

但是更有可能是求解std時參數用錯了:因為python求解時,有偏估計和無偏估計是用 ddof參數來選擇的,求標準差時除以的值是:n-ddof。

如果使用numpy計算的話,numpy.std() 求標準差的時候默認是除以 n,即有偏估計;如果要無偏估計,需要在np.std()參數中加入參數 ddof = 1,也就是除以的是n-1;

然而,pandas卻是相反的,它默認是無偏估計,也就是除以 n-1;如果想有偏估計,需要設置參數 ddof=0,即 df.std(ddof=0)。

所以:

如果你的數值序列其他的都是nan,只有一個值不是nan,那么無偏估計時,std求解的標準差就是nan了。

3. 列表、字符串等在直接索引時,不能超出長度范圍;但是切片索引時,卻可以超出范圍,超出范圍時取值一直到末尾。

例如:

a = 'abcdefg'

#print(a[10]) # 報錯:IndexError: string index out of range

print(a[3:10]) #不報錯:返回 defg

b= [2,3,4,5]#print(b[10]) # 報錯:IndexError: string index out of range

print(b[2:10]) #不報錯:返回 [4, 5]

4. range函數,有步長參數可用

range(start,stop[,step])

有時候,步長參數可以讓你減少一層for循環的使用。

for ii in range(1,8,2):print(ii)

5. pandas求取眾數 mode() 方法,多個眾數時,求所有眾數的均值

importpandas as pdimportnumpy as np

df= pd.DataFrame({'name':['Jack','Alex','Bob','Nancy','Mary','Alice','Jerry','Wolf'],'course':['Chinese','Math','Math','Chinese','Math','English','Chinese','English'],'grade':[1,1,2,2,2,2,3,3],'score':[85,85,91,78,89,89,78,79]})print(df.score)

aa= df.score.mode() #眾數

print(type(aa)) #

print('aa:',aa) #如果有多個眾數,會形成一個序列返回

print(np.mean(aa)) #多個眾數時,求均值

注:scipy.stats.mode() 和df.value_counts() 均可用于求眾數。

參考:

總結

以上是生活随笔為你收集整理的python not in range1002无标题_Python中偶尔遇到的细节疑问(一):去除列名特殊字符、标准差出现nan、切片索引可超出范围、range步长、众数...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。