python實現快速資料統計

2021-10-10 12:14:36 字數 3473 閱讀 2952

首先,先來看一看老闆發的這個excel資料。

可以發現它的表頭具有6個標籤。老闆要求這個最終統計結果需要將得到對應實驗室的同名裝置的台數,並且它們應該被購置時間單價所區分,並且裝置編號需要具有範圍。

下面是經過程式處理後得到的結果。

這個資料在未處理前是1208行,處理後為225行。

1.讀取csv檔案。

2.檢視表頭

3.根據邏輯編寫**

import pandas as pd

pd.set_option(

'mode.chained_assignment'

,none

)data = pd.read_csv(

"表2-7本科實驗裝置情況.csv"

,encoding=

"gbk"

)result = pd.dataframe(

)sycsdm = pd.dataframe.drop_duplicates(data[

['實驗場所**']]

,keep =

'first'

)sycsmc = pd.dataframe.drop_duplicates(data[

['實驗場所名稱']]

,keep =

'first'

)sbbh = pd.dataframe.drop_duplicates(data[

['主要教學實驗儀器裝置編號']]

,keep =

'first'

)sbdj = pd.dataframe.drop_duplicates(data[

['單價(元)']]

,keep =

'first'

)sbsj = pd.dataframe.drop_duplicates(data[

['購置時間']]

,keep =

'first'

)sbmczj = pd.dataframe.drop_duplicates(data[

['主要教學實驗儀器裝置(含軟體)名']]

,keep =

'first'

)sycsdmlist = sycsdm.values.tolist(

)for dm in sycsdmlist:

needdata = data[data[

'實驗場所**'

].isin(dm)

] sbmc = pd.dataframe.drop_duplicates(needdata[

['主要教學實驗儀器裝置(含軟體)名']]

,keep =

'first'

) sbmclist = sbmc.values.tolist(

)#字串dataframe變列表

for sb in sbmclist:

dsbmc = needdata[needdata[

'主要教學實驗儀器裝置(含軟體)名'

].isin(sb)

]#單裝置名稱詳情

dsbjg = pd.dataframe.drop_duplicates(dsbmc[

['單價(元)']]

,keep =

'first'

)#單裝置下獲得**去重

dsbjglist = dsbjg.values.tolist(

)for jg in dsbjglist:

wyjgxsb = dsbmc[dsbmc[

'單價(元)'

].isin(jg)

]#唯一**下裝置

dsbgzsj = pd.dataframe.drop_duplicates(wyjgxsb[

['購置時間']]

,keep =

'first'

)#唯一**下裝置獲得 購置時間 去重

dsbgzsjlist = dsbgzsj.values.tolist(

)for sj in dsbgzsjlist:

tsjtjgsb = wyjgxsb[wyjgxsb[

'購置時間'

].isin(sj)

]#同時間同**裝置

ts =

len(tsjtjgsb)

#獲取台數

if ts>1:

tsjtjgsbqc = tsjtjgsb.iloc[0]

shou = tsjtjgsb.iloc[0]

wei = tsjtjgsb.iloc[-1

] shoubianhao = shou[

'主要教學實驗儀器裝置編號'

] weibianhao = wei[

'主要教學實驗儀器裝置編號'

] tsjtjgsbqc[

'主要教學實驗儀器裝置編號']=

str(shoubianhao)

+'-'

+str

(weibianhao)

tsjtjgsbqc[

'裝置數量'

]= ts

else

: tsjtjgsb[

'裝置數量'

]= ts

#結果重排

result = result[

['實驗場所**'

,'實驗場所名稱'

,'主要教學實驗儀器裝置(含軟體)名'

,'主要教學實驗儀器裝置編號'

,'裝置數量'

,'單價(元)'

,'購置時間']]

result.to_csv(

'本科實驗裝置統計表.csv'

,encoding=

"gbk"

,index =

false

)

主要思想就是利用乙個迴圈邏輯:

先通過pd.dataframe.drop_duplicates去對實驗場所**去重,得到乙個存著獨一無二實驗場所**dataframe,而後使用函式dataframe.values.tolist()將實驗場所**轉換為列表list,這樣就可以使用for i in list構造迴圈,使用**data[data[『實驗場所**』].isin(i)]**每次迴圈選擇乙個實驗所去選擇後續的資料。

同理,在迴圈中構造針對剩餘表頭的迴圈。

OpenMP實現資料統計

編寫openmp程式,陣列裡存放大量浮點數,資料分布在05之間,為了對資料分布有乙個更為直觀的感受,對資料進行統計,01之間 1 2之間 分別有多少浮點數。openmp實現求矩陣均值最大值以及最小值 openmp實現資料統計 pthreads實現任務佇列 pthreads實現梯形積分 visual ...

用 python實現簡單EXCEL資料統計

任務 用python時間簡單的統計任務 統計男性和女性分別有多少人。用到的物料 xlrd 它的作用 讀取excel表資料 import xlrd workbook xlrd.open workbook demo.xlsx 開啟excel資料表 sheetlist workbook.sheet nam...

用python實現簡單EXCEL資料統計的例項

任務 用python時間簡單的統計任務 統計男性和女性分別有多少人。用到的物料 xlrd 它的作用 讀取excel表數mjzrz據 mjzrzimport xlrd workbook xlrd.open workbook demo.xlsx 開啟excel資料表 sheetlist workbook...