導航:首頁 > 編程語言 > python空值填充列均值

python空值填充列均值

發布時間:2022-10-10 02:30:50

python 中 輸入一個數值列表,並求出其平均值

a=[1,2,3,4,5,6,7,8,9]
printrece(lambdax,y:x+y,a)/len(a)

以上。

② python Dataframe 對每一列求均值,然後加在最後一行怎麼做

您好,我來為您解答: 你可以在R中直接call X,會看到已經改成你要的結果了,第一二列的名字都是「good」。 只是用View 函數查看X的時候,第二列會自動顯示為「good.1" 如果我的回答沒能幫助您,請繼續追問。

③ 用python求數據表中數據的均值與方差

以下為代碼:

numstr = input("請輸入全部數據:用英文逗號(,),中文逗號(,),

空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:")

if "," in numstr:

numlist = numstr.split(",")

elif "," in numstr:

numlist = numstr.split(",")

elif " " in numstr:

numlist = numstr.split(" ")

elif " " in numstr:

numlist = numstr.split(" ")

elif " " in numstr:

numlist = numstr.split(" ")

else:

numlist = [numstr]

numlist = list(map(lambda x:x.strip(",").strip(",").

strip(" ").strip(" ").strip(" "), numlist))

for i in numlist.():

try:

a = float(i)

except:

numlist.remove(i)

print("已過濾字元串:%s"%i)

#好了,上面很多隻是方便用戶而已(但還是有一些有用的),主要是下面

numlist = list(map(lambda x:float(x), numlist))#所有字元串轉為浮點

print("最終數列:",numlist)#輸出最終數列,進行核對

average = sum(numlist)/len(numlist)#用數列和除以出列長度得到平均數

variance = 0#方差,先記為0

for i in numlist:#遍歷列表

variance += (i - average) ** 2#反正就是公式對吧,先加進去

variance /= len(numlist)#還是公式,那一長串還得除以一個數列長度

print("均值:%.2f 方差:%.2f"%(average, variance))#分兩行輸出


以下為輸出效果:

請輸入全部數據:用英文逗號(,),中文逗號(,),空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:38,22,99,10,99,7, 25,,40

已過濾字元串:

最終數列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]

均值:42.50

方差:1181.75


以下為解析:

平均值的思路就是總和除以列表長度,方差的思路就是把所有的(x-均值)²加起來,最後再除以一個長度即可。

本程序的優點:輸入時逗號後出現空格與不小心多打逗號等情況都不會出問題,可以接受小數,可以先輸出最終數列以供核對。

④ python計算一個序列的平均值的方法

python計算一個序列的平均值的方法
這篇文章主要介紹了python計算一個序列的平均值的方法,涉及Python遞歸遍歷與數學計算的相關技巧,具有一定參考借鑒價值,分享給大家供大家參考。
具體如下:
def average(seq, total=0.0):
num = 0
for item in seq:
total += item
num += 1
return total / num
如果序列是數組或者元祖可以簡單使用下面的代碼
def average(seq):
return float(sum(seq)) / len(seq)
希望本文所述對大家的Python程序設計有所幫助。

⑤ 數據分析員用python做數據分析是怎麼回事,需要用到python中的那些內容,具體是怎麼操作的

大數據!大數據!其實是離不開數據二字,但是總體來講,自己之前對數據的認知是不太夠的,更多是在關注技術的提升上。換句話講,自己是在做技術,這些技術處理的是數據,而不能算是自己是在做數據的。大規模數據的處理是一個非常大的課題,但是這一點更偏向於是搞技術的。

與數據分析相關的Python庫很多,比如Numpy、pandas、matplotlib、scipy等,數據分析的操作包括數據的導入和導出、數據篩選、數據描述、數據處理、統計分析、可視化等等。接下來我們看一下如何利用Python完成數據的分析。
生成數據表
常見的生成方法有兩種,第一種是導入外部數據,第二種是直接寫入數據,Python支持從多種類型的數據導入。在開始使用Python進行數據導入前需要先導入pandas庫,為了方便起見,我們也同時導入Numpy庫。代碼是最簡模式,裡面有很多可選參數設置,例如列名稱、索引列、數據格式等等。
檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數和列數。你可以使用info函數查看數據表的整體信息,使用dtypes函數來返回數據格式。Isnull是Python中檢驗空值的函數,你可以對整個數據表進行檢查,也可以單獨對某一列進行空值檢查,返回的結果是邏輯值,包含空值返回True,不包含則返回False。使用unique函數查看唯一值,使用Values函數用來查看數據表中的數值。
數據表清洗
Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充。Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
數據預處理
數據預處理是對清洗完的數據進行整理以便後期的統計和分析工作,主要包括數據表的合並、排序、數值分列、數據分組及標記等工作。在Python中可以使用merge函數對兩個數據表進行合並,合並的方式為inner,此外還有left、right和outer方式。使用ort_values函數和sort_index函數完成排序,使用where函數完成數據分組,使用split函數實現分列。
數據提取
主要是使用三個函數:loc、iloc和ix,其中loc函數按標簽值進行提取,iloc按位置進行提取,ix可以同時按標簽和位置進行提取。除了按標簽和位置提起數據以外,還可以按具體的條件進行數據,比如使用loc和isin兩個函數配合使用,按指定條件對數據進行提取。
數據篩選匯總
Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和 count函數還能實現excel中sumif和countif函數的功能。Python中使用的主要函數是groupby和pivot_table。groupby是進行分類匯總的函數,使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,groupby 按列名稱出現的順序進行分組。

⑥ python如何求列表的平均值

sum函數返回列表和,len函數返回列表長度,剩下的就是一個除法。

⑦ Python編程求平均值的兩種方法是

方法一:
scores = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
avg = sum(scores) / len(scores)
print('平均成績是:{}'.format(avg))
for i in scores:
if i avg># 少於平均分的成績放到新建的空列表中
scores2.append(i)
print('低於平均成績的有:{}'.format(scores2))
方法二:
導入函數庫
import numpy as np # 導入 numpy庫,as 即為導入的庫起一個別稱,別稱為np
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
average = np.mean(scores1) # 一行解決。
print('平均成績是:{}'.format(average))
# 下面展示一種NumPy數組的操作,感興趣的同學可以自行去學習哈。
scores3 = np.array(scores1)
print('低於平均成績的有:{}'.format(scores3[scores3

⑧ python如何定義一個函數求列表各項數據平均值

# coding = GBK

a =[1,2,3,4,5]

sum=0

b = len(a)

print("這個數組的長度為:",b)

for i in a:

sum =sum +i

print("這個數組之和為:",sum)

print("這個數組平均數為",sum/b)

import sys

sum = 0

cnt = 0

f = open('1.txt', 'r')

files = f.readline()

while (files ):

sum = sum + float(files .split(",")[0])

cnt = cnt + 1

files = f.readline()

print(sum / cnt)

f.close()

或者。

#!/usr/bin/env pythonimport timeimport numpy as np

dd = np.random.randint(0, 20, size=(2*1000*1000))t_start = time.clock()avg_sum1 =

0.0BlockOffset = 0 while BlockOffset < len(dd):

if dd[BlockOffset + 1] <= 10:

avg_sum1 += dd[BlockOffset + 1] * 0.1

else:

avg_sum1 += dd[BlockOffset + 0] * 0.01

BlockOffset += 2print('Avg: ' + str(avg_sum1 / len(dd) / 2)) print('Exe time: ' +

str(time.clock() - t_start))

(8)python空值填充列均值擴展閱讀:

python 實現求和、計數、最大最小值、平均值、中位數、標准偏差、百分比。

importsys

classStats:

def__init__(self, sequence):

# sequence of numbers we will process

# convert all items to floats for numerical processing

self.sequence=[float(item)foriteminsequence]

defsum(self):

iflen(self.sequence) <1:

returnNone

else:

returnsum(self.sequence)

defcount(self):

returnlen(self.sequence)

defmin(self):

iflen(self.sequence) <1:

returnNone

else:

returnmin(self.sequence)

defmax(self):

iflen(self.sequence) <1:

returnNone

else:

returnmax(self.sequence)

defavg(self):

iflen(self.sequence) <1:

returnNone

else:

returnsum(self.sequence)/len(self.sequence)

defmedian(self):

iflen(self.sequence) <1:

returnNone

else:

self.sequence.sort()

returnself.sequence[len(self.sequence)//2]

defstdev(self):

iflen(self.sequence) <1:

returnNone

else:

avg=self.avg()

sdsq=sum([(i-avg)**2foriinself.sequence])

stdev=(sdsq/(len(self.sequence)-1))**.5

returnstdev

defpercentile(self, percentile):

iflen(self.sequence) <1:

value=None

elif(percentile >=100):

sys.stderr.write('ERROR: percentile must be < 100. you supplied: %s '%percentile)

value=None

else:

element_idx=int(len(self.sequence)*(percentile/100.0))

self.sequence.sort()

value=self.sequence[element_idx]

returnvalue

⑨ 像Excel一樣使用Python(一)

在進行數據處理時,如果數據簡單,數量不多,excel是大家的首選。但是當數據眾多,類型復雜,需要靈活地顯示切片、進行索引、以及排序時,python會更加方便。藉助python中的numpy和pandas庫,它能快速完成各種任務,包括數據的創建、檢查、清洗、預處理、提取、篩選、匯總、統計等。接下來幾篇文章,將以excel為參照,介紹python中數據的處理。

提到pandas,那就不得不提兩類重要的數據結構,Series和DataFrame,這兩類數據結構都是建立在numpy的數組array基礎上。與array相比,Series是一個一維的數據集,但是每個數據元素都帶有一個索引,有點類似於字典。而DataFrame在數組的基礎上,增加了行索引和列索引,類似於Series的字典,或者說是一個列表集。

所以在數據處理前,要安裝好numpy , pandas。接下來就看看如何完成一套完整的數據操作。

創建數據表的方法分兩種,分別是從外部導入數據,以及直接寫入數據。

在python中,也可外部導入xlsx格式文件,使用read_excel()函數:

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

輸出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:調用pandas中read_excel屬性,來讀取文件test.xlsx,並轉換成DataFrame格式,賦給變數data。在每一行後,自動分了一個索引值。除了excel,還支持以下格式文件的導入和寫入:

Python寫入的方法有很多,但還是不如excel方便。常用的例如使用相等長度的字典或numpy數組來創建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

輸出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一個行索引後,自動排序並輸出。

在python中,可以使用info()函數查看整個數據的詳細信息。

print data.info()

輸出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外,還可以通過shape, column, index, values, dtypes等函數來查看數據維度、行列組成、所有的值、 數據類型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

輸出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

在excel中可以按「F5」,在「定位條件」中選擇「空值」,選中後,輸入替換信息,再按「Ctrl+Enter」即可完成替換。

在python中,使用函數 isnull 和 notnull 來檢測數據丟失, 包含空值返回True,不包含則返回False。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函數的實例方法,以及加入參數,對某一列進行檢查:

print data1['Func'].isnull()

輸出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna對空值進行填充:

data.fillna(value=0)

#用0來填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值來填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

Excel中可以按「Ctrl+F」,可調出替換對話框,替換相應數據。

Python中,使用replace函數替換:

data['Func'].replace('monooxygenase', 'oxidase')

將Func列中的'monooxygenase'替換成'oxidase'。

Excel中,通過「數據-篩選-高級」可以選擇性地看某一列的唯一值。

Python中,使用unique函數查看:

print data['Func'].unique()

輸出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

Excel中,通過UPPER、LOWER、PROPER等函數來變成大寫、小寫、首字母大寫。

Python中也有同名函數:

data1['Gene'].str.lower()

Excel中可以通過「數據-刪除重復項」來去除重復值。

Python中,可以通過drop_plicates函數刪除重復值:

print data['Func'].drop_plicates()

輸出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

還可以設置「 keep=』last』 」參數,後出現的被保留,先出現的被刪除:

print data['Func'].drop_plicates(keep='last')

輸出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

內容參考:

Python For Data Analysis

藍鯨網站分析博客,作者藍鯨(王彥平)

⑩ python(pandas模塊)

1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...

閱讀全文

與python空值填充列均值相關的資料

熱點內容
android天氣apijson 瀏覽:982
為什麼創建id會出現伺服器錯誤 瀏覽:835
代碼中有不必編譯的單詞嗎 瀏覽:563
鉤子與資料庫編程 瀏覽:563
安卓光遇錄歌怎麼設置 瀏覽:485
虛擬機怎麼和雲伺服器搭建集群 瀏覽:896
python倒計時代碼turtle 瀏覽:491
cad命令mv 瀏覽:928
nexus7一代androidl 瀏覽:306
linux使用靜態庫編譯過程 瀏覽:103
android平滑滾動效果 瀏覽:841
什麼是編譯器指令 瀏覽:219
微控制器邏輯命令使用什麼匯流排 瀏覽:887
程序員在學校里是學什麼的 瀏覽:604
oraclejava數據類型 瀏覽:890
程序員考注冊會計師 瀏覽:957
怎麼使用access的命令按鈕 瀏覽:899
有點錢app在哪裡下載 瀏覽:832
博途v15解壓後無法安裝 瀏覽:205
什麼是根伺服器主機 瀏覽:438