用python寫身高體重關係,excel表格輸入數據進行查找

2020-10-08 地表嘴強程式設計師

import random #隨機數的包
import pandas as pd
#Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一
import matplotib.pypot as plt
#Matplotlib 是一個 Python 的 2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形。通過 Matplotlib,開發者可以僅需要幾行代碼,便可以生成繪圖
import numpy as np
#NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
#顯示漢字
import matplotlib as mpl
mpl.rcParams[『font.sans-serif』]=[『SimHei』] #用來正常顯示中文標籤
mpl.rcParams[『axes.unicode_minus』]=False #用來正常顯示
負號

import randomimport pandas as pdimport numpy as npimport matplotlib.pyplot as plt#顯示漢字import matplotlib as mplmpl.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤mpl.rcParams['axes.unicode_minus']=False #用來正常顯示負號


def displayinfor2(sex,height,weight): stard=105 if sex=='男': stard=105 else: stard=100 dlta=height-stard per=dlta*0.1 if dlta - per <= weight <= dlta + per: return '標準' elif weight > dlta + per: return '超重' elif weight < dlta - per: return '過輕' else: return '無結果'1234567891011121314151617

append是list類型數據的屬性

要用此屬性應該用以下命令改為list屬性
#list 轉 numpy
np.array(a)
#ndarray 轉 list
a.tolist()

if __name__ == '__main__': colums = ['姓名', '學號', '性別', '身高', '體重'] normarl = ['張三', 100, '男', 175, 45] data = [] # 未來數據 for i in range(20): item1 = normarl[0] + str(i) item2 = normarl[1] + i a = random.randint(0, 1) #隨機數0或1 if a == 0: item3 = normarl[2] else: item3 = '女' item4 = random.randint(165, 200) # 身高 item5 = random.randint(45, 100) # 體重 weight = 0 temp = [] temp.append(item1) temp.append(item2) temp.append(item3) temp.append(item4) temp.append(item5) data.append(temp)

df3 = pd.DataFrame(data, columns=colums) #轉換成excel的格式,data為數據,columns為列數據名稱,index為行數據名稱
sheet_name #表名稱

df3 = pd.DataFrame(data, columns=colums) df3.to_excel('D:/xuesheng.xlsx', sheet_name='學生表')

df4 = pd.read_excel(『D:/xuesheng.xlsx』, index_col=0) #讀取excel表格中的數據,讓第一列成為索引,index_col,讓0名稱成為索引,因為讀取excel會讀取多餘的一列數據,即把索引也讀進來,所以用index_col重新定義一下索引

number = int(input("請輸入一個學號:")) df4 = pd.read_excel('D:/xuesheng.xlsx', index_col=0)

np4 = df4.values #values以列表返回字典中的所有值
temp=i.tolist() #tolist把i的numpy格式轉換成list為了下面append屬性,因為只有list能用append
item6=displayinfor2(i[2],i[3],i[4]) #調用displayinfor2函數,在上面有定義返回值為標準、過輕、過重
append #提交數據的list中。例:temp=[1,『男』,2] temp,append(3) 結果為:temp[1,『男』,2,3]

np4 = df4.values for i in np4: if (i[1] == number): temp=[] temp=i.tolist() item6=displayinfor2(i[2],i[3],i[4]) temp.append(item6) #print(type(temp)) print(temp)

第一張圖(圖片最下面)
學號,身高\體重分布圖
ax.axis([100, 120, 45, 200]) #axis:x軸:100到120,y軸:45到200
ax.plot(data1,data2,label=『身高』) #繪製線 x軸:data1 , y軸:data2,label圖例
ax.legend() #把圖例進行顯示

data1 = [] #學號 data2 = [] #身高 data3 = [] #體重 number=0 # fig, ax = plt.subplots() fig = plt.figure() ax = fig.add_subplot(2, 1, 2) for i in np4: temp1 = i[1] temp2 = i[3] temp3 = i[4] data1.append(temp1) data2.append(temp2) data3.append(temp3) ax.axis([100, 120, 45, 200]) ax.plot(data1, data2,label='身高') ax.plot(data1, data3,label='體重') ax.set_xlabel('x軸(學號)') ax.set_ylabel('y軸(身高\體重)') ax.set_title("學生身高體重圖") ax.legend() # Add a legend.

第二張圖
ax1.bar(names1, heightnum) #柱狀圖 names1表示x軸各個名稱,heightnum表示各個區間的數量

heightnum=[0,0,0,0,0,0,0] #身高區間的人數 for i in data2: if(165<= i <=170): heightnum[0] = heightnum[0] + 1 elif (170<i<=175): heightnum[1] = heightnum[1] + 1 elif (175<i<=180): heightnum[2] = heightnum[2] + 1 elif (180<i<=185): heightnum[3] = heightnum[3] + 1 elif (185 < i <= 190): heightnum[4] = heightnum[4] + 1 elif (190 < i <= 195): heightnum[5] = heightnum[5] + 1 elif (195< i <= 200): heightnum[6] = heightnum[6] + 1 names1=['165~170','171~175','176~180','181~185','186~190','191~195','196~200'] ax1=plt.subplot(221) plt.title("學生身高分布圖") ax1.bar(names1, heightnum)1234567891011121314151617181920

weightnum = [0,0,0,0,0,0,0,0,0,0] # 身高區間的人數 for i in data3: if (45 <= i <= 50): weightnum[0] = weightnum[0] + 1 elif (50 < i <= 55): weightnum[1] = weightnum[1] + 1 elif (55 < i <= 60): weightnum[2] = weightnum[2] + 1 elif (60 < i <= 65): weightnum[3] = weightnum[3] + 1 elif (65 < i <= 70): weightnum[4] = weightnum[4] + 1 elif (70 < i <= 80): weightnum[5] = weightnum[5] + 1 elif (80 < i <= 85): weightnum[6] = weightnum[6] + 1 elif (85 < i <= 90): weightnum[7] = weightnum[7] + 1 elif (90 < i <= 100): weightnum[8] = weightnum[8] + 1 names2 = ['45~50', '51~55', '56~60', '61~65', '66~70', '71~75', '76~80','81~85','86~90','91~100'] plt.subplot(222) plt.title("學生體重分布圖") plt.bar(names2, weightnum) plt.show()

最終結果圖:

此項目完整代碼獲取後臺私信小編01

相關焦點

  • Python讀寫Excel表格,就是這麼簡單粗暴又好用
    最近在做一些數據處理和計算的工作,因為數據是以.csv格式保存的,因此剛開始直接用Excel來處理。但是做著做著發現重複的勞動其實並沒有多大的意義,於是就想著寫個小工具幫著處理。以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。
  • Excel vlookup篩選兩列的重複項與查找兩個表格相同數據
    Vlookup函數可用於多種情況查找,篩選重複數據就是其中之一,它既可篩選兩列重複的數據又可查找兩個表格相同的數據。篩選兩列重複數據時,不僅僅是返回一項重複數據,是把所有重複的都標示出來;查找兩表格相同數據時,兩個表格既可以位於同一Excel文檔,又可分別位於兩個Excel文檔,並且也可以標示出所有重複的數據;當查找兩個位於不同Excel文檔中的表格相同數據時,查找範圍需要寫文檔名稱和工作簿名稱,這樣Excel才能找到查找區域。
  • 如何用Python增強Excel,減少處理複雜數據的痛苦?
    一個名為xlwings的python庫允許用戶通過VBA調用python腳本並在兩者之間傳遞數據。為什麼要將Python與ExcelVBA集成?事實上,用戶可以在VBA中做任何事情。所以,如果是這樣,為什麼要使用Python?嗯,有很多原因。
  • python裡讀寫excel等數據文件的幾種常用方式
    python處理數據文件第一步是要讀取數據,文件類型主要包括文本文件(csv、txt等)、excel內置模塊(csv)python內置了csv模塊用於讀寫csv文件,csv是一種逗號分隔符文件,是數據科學中最常見的數據存儲格式之一。 csv模塊能輕鬆完成各種體量數據的讀寫操作,當然大數據量需要代碼層面的優化。
  • 堪比python、秒殺Excel表格,這個數據分析工具太猛了
    如果是前者,直接學習python或者R就可以了;而如果是後者,excel雖然也能夠處理數據,但Excel在數據清洗、大數據處理、數據可視化方面都比專業的BI工具遜色不少。而且FineBI基本不需要寫函數,內置各種計算功能,數據過濾篩選條件等,以及一些基本的回歸、預測數據挖掘功能,製作可視化儀錶板很方便。更重要的是,個人版是免費的。1、自由度高跟以往BI工具的使用邏輯不同,finebi提出自由數據分析,我們可以按照自己的需求隨時取用已準備好的數據包,然後再進行多方式、多維度的探索式數據分析。
  • excel的縱向查找
    excel是一款非常重要的辦公軟體,經常使用excel小夥伴兒們,肯定對其中的函數不陌生。excel的函數讓我們處理表格中的大量數據時更加得心應手。什麼是excel函數呢?其中,vlookup就在「查找與引用」的函數分類裡,vlookup是縱向查找函數,其格式是「=VLOOKUP(要查找的值,要查找數據的區域,返回數據在查找區域的第幾列數,精確匹配/近似匹配),其中精確匹配是0,近似匹配是1」。該函數的作用是方便我們從一個量很大的數據表裡快速地查找到所需要的信息,假設下面是我們統計的初始數據,如圖2:
  • 文職美女上班手動用Excel表格太麻煩,當學會python後easy操作
    通過程序操作excel表格是編程中比較常見的操作,python本身不能直接操作excel,需要安裝第三方的模塊來實現excel的操作。一、模塊安裝使用模塊前,需要提前在電腦上進行安裝,如果是在線安裝的話,需要確保你的電腦能夠上網。
  • Excel表格數據很多查找麻煩,篩選功能你會用嗎?輕鬆查找數據!
    在工作中,使用Excel表格的時候,我們會遇到很多和數據有關的事情。比如在複雜繁多的數據裡查找某個人或者某個特點的數據。很顯然用眼睛去一個一個查看是不太可取的!對於繁多的數據,查找某些指定的數據!這時就可以考慮使用Excel裡的篩選功能了!
  • python自動化辦公|批量處理Excel文件的利器
    excel都能做,但是為什麼我們還要學python呢?python的優勢在於批量處理重複性、機械性的事物,試想一下,如果你老闆讓請把100個表格內的標題統一改成另一格式,你會不會發瘋?的功能是最全的,它不僅能讀、寫xls和xlsx兩種格式的excel文件,而且能批量處理多個excel文件。
  • 男生身高體重標準 男生身高體重標準表格
    熟練地用手指拿東西吃。用匙吃東西時需要幫助。3、心智:除了「爸爸」、「媽媽」外,還會說2-3個字的詞。會用聲音表達願望。能找到藏起來的玩具。能玩簡單的遊戲,驚訝時發笑。能把木栓插入圓孔中;用蠟筆在紙上亂塗;在別人的幫助下用杯喝水。4、社會發育:會用哭來引人注意。
  • excel數據查找技巧:按時間段進行區域查找數據
    品名、編號等都需要精確查找,但不需要對日期進行精確查找,而是查找最接近或等於查找日期的某個時間段。趕緊看看下面的文章吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。最近公司領導讓小王做一個針對以往活動價格的查詢模板,要求輸入商品名稱和查詢日期就能調取對應的執行價格,類似於下面的效果。圖中只是隨便列舉了一些數據,實際的數據量要更大。
  • Excel、python、BI工具,誰才是數據分析的老大?
    我覺得現在數據行業的人,都有一點滿瓶不動半瓶搖的意思,懂一點知識,掌握一個入門工具,看了幾篇所謂的大數據洞察文章,就洋洋自得。譬如還在爭執python和R哪個好,決策樹和貝葉斯哪個準,寫代碼的就要鄙視用excel拉透視圖的,會算法的就一定要鄙視做報表的等等。
  • excel怎麼抓取網站的數據到表格中
    excel怎麼抓取網站的數據到表格中在工作中需要爬取,一些網站上的數據,導入到excel工作表中,常用的一般會使用python語言爬取,網站數據,但是對於收集一些簡單的數據再去學習一門語言相對比較麻煩,在excel其實自帶就有獲取網站數據的功能
  • python拆分Excel表格並發送郵件
    工作中經常會出現需要將數據按一定的條件拆分並分發給不同的收件人的情況,今天就來給大家分享一下如何使用python拆分Excel表格並分發郵件。以下表(2019年下半年銷量數據表)數據為例:首先我們需要一張包含收件人郵箱列表的Excel表格,具體數據如下圖所示:具體代碼:#導入模塊import pandas as pdfrom email.mime.text import MIMETextfrom email.mime.application
  • excel VS python 誰更適合數據分析?
    我常常會聽到這樣的問題,「金融分析中,為什麼我要學習像python這樣的程式語言,甚至使用它超過excel呢?」在金融領域,python成為炙手可熱的分析工具,這幾乎已經成為共識。面對excel和python,誰更適合數據分析,也確實一直被大家討論。excel VS pythonexcel不用多做介紹,辦公必備的表格工具。
  • PDF轉EXCEL,python的這個技能知道嗎?
    當在pdf上看到自己想用的表格,卻無法將其複製下來的時候,只能默默地打開excel對照著pdf表格的形式敲打出來,既費時又費力!這裡介紹如何用python程序將pdf上的表格自動轉化為excel表!1.使用的庫簡單介紹一下要使用的庫:pdfplumber 和xlwt1.pdfplumberpdfplumber使用來解析pdf的文字與表格。該庫與之前一篇文章python辦公自動化——PDF轉Word所使用的pdfminer庫類似,都是從pdf裡面提取信息。
  • 用什麼Phthon,Excel也可以網抓多頁表格
    最近python非常的火,動不動就秒殺excel,特別是從網上抓取數據十分吸人眼球。其實,Excel中的power query功能也可以網抓,甚至多頁表格。蘭色今天就帶大家一起試上一試。 下圖所示是Excel精英培訓論壇的一個答疑交流版塊。我們要導出前10頁貼子信息到excel中。
  • 如何在excel中篩選直接從別的表格獲取數據
    如何在excel中篩選直接從別的表格獲取數據我想要先說的是:我認真製作的教程喜歡得到的大家的喜歡和支持,如果你們想要源文件我可以提供給你們,例子都是我平時點滴時間製作出來,很不容用,大家多多評論支持下。不勝感激!
  • python辦公自動化|自動更新不對稱表格
    作者:陳熹來源:早起Python大家好,又到了python辦公自動化專題。在之前我們詳細講解過如何使用Python自動更新Excel表格並調整樣式,在上次的自動化案例中要求兩個或多個Excel表格數據要匹配/對稱才能夠自動更新,今天我們再次來解決在數據不對稱的情況下如何自動更新表格,這是更常見的情況,也是我遇到的一個具體需求。
  • python-docx表格添加和刪除數據
    在使用Python-docx包對表格進行數據的錄入,通常採用如下幾種方式。(0, 2).text = '年齡'table.cell(0, 3).text = '身高'# 表格賦值,將第二行作為數據輸入第一行table.cell(1, 0).text = '1'table.cell(1, 1).text = '張三'table.cell(1, 2).text = '20'table.cell(1, 3).text = '174'document.save('test.docx