import pandas as pd
import numpy as np
import random
#設定最大列和最大行(資料就不會被省略)
pd.set_option(『max_columns』,1000)
pd.set_option(『max_row』,1000000000)
pd.set_option(『display.float_format』,lambda x:』%.5f』%x)
#將某列資料按數量值分成不同範圍段進行分組(groupby)運算
df = pd.dataframe()
#print(df)
#選出年齡在19-40 40-65 65-100的人 並統計個數 區間劃分(cut)
age_groups = pd.cut(df[『age』],bins=[19,40,45,100])
#print(age_groups)
#print(df.groupby(age_groups).count())
#按』age』分組範圍和性別(***)進行製作交叉表
#pd.crosstab(age_groups,df[『***』])
df1 = pd.dataframe()
print(df1)
#按key1分組,進行聚合計算
#注意:當分組進行數值計算時,不是數值類的列(即麻煩列)會被清除
print(df1.groupby(『key1』).sum())
#只算data1(兩種方法)
#print(df1[『data1』].groupby(df1[『key1』]).sum())
#print(df1.groupby(『key1』)[『data1』].sum())
#使用agg()函式做聚合運算
#print(df1.groupby(『key1』).agg(『sum』))
#可以同時做多個聚合運算
#print(df1.groupby(『key1』).agg([『sum』,『mean』,『std』]))
#可自定義函式,傳入agg方法中,groupby.agg(func)
def peak_range(df):
『』』返回數值範圍
『』』return df.max()-df.min()
#print(df1.groupby(『key1』).agg(peak_range))
#同時運用多個聚合函式
#print(df1.groupby(『key1』).agg([『mean』,『sum』,『count』,peak_range])) #預設列明為函式名
#print(df1.groupby(『key1』).agg([『mean』,『sum』,『count』,(『range』,peak_range)])) #通過元祖改名
#好萊塢電影分析
import pandas as pd
import numpy as np
data = pd.read_csv(『e:haolaiwu.csv』)
#print(data)
#data.count()
#data.head()
#處理缺失值
data = data.dropna(how=『any』)
#data.count()
data.head()
#roup_director = data.groupby(by=『director_name』)[『gross』].sum() #每個導演的票房總數
#print(group_director)
#accending公升降序排列,true公升序
#esult = group_director.sort_values()
#result.head()
#print(ult.loc[『frank whaley』]) #loc索引檢視行
#電影產量年份趨勢
#import matplotlib.pyplot as plt
#movie_years = data.groupby(『title_year』)[『movie_title』]
#print(movie_years.count().index.tolist()) #轉成列表
#print(movie_years.count().values)
#x = movie_years.count().index.tolist()
#y = movie_years.count().values
#plt.figure(figsize=(20,8),dpi=80)
#plt.plot(x,y)
#plt.show()
#把genres列的豎線取消掉 轉成有價值得數
#4建立乙個新的dataframe儲存拆分好的資料
genre_data = pd.dataframe(columns = [『genres』,『gross』])
#1獲取每一行資料
for i in range(0,len(data)):
#2每一行資料
row_data = data.iloc[i]
#3將型別拆分
genres = row_data[『genres』].split(』|』)
#5#型別個數
n_genres = len(genres)
#6將拆分好的資料打包成字典,然後存到新的dataframe裡面去
dict_obj = {}
dict_obj['genres']=genres
dict_obj['gross']=[row_data['gross']]*n_genres
#7將字典轉成dataframe
genre_df = pd.dataframe(dict_obj)
#8這是將一條資料拆分後的形成的dataframe新增到genre_data
#print(genre_data)
genre_count = genre_data.groupby(『genres』).count()
print(genre_count.columns)
#匯入#讀
people = pd.read_excel(「e:abc.xlsx」)
print(people.columns)
#pandas讀取,寫入excel
df=pd.dataframe()
df = df.set_index(『id』)
df.to_excel(』-----.xlsx』)
print(df)
#注意點
#預設將第一行作為索引列
#people = pd.=read_excel(』--------.xlsx』,header=1)
#print(people.columns)
#可以將header=none,此時,列索引變成原來預設的數字索引,就可以進行自定義的列索引設定
#people=pd.read_excel(-----.xlsx,header=none)
#print(people.columns)
#多個表的時候制定表的名字』
sheet = pd.read_excel(』----.xlsx』,sheet_name=『sheet2』)
print(sheet)
#skipows : 跳過前幾行
#usecols:使用那幾列
sheet = pd.read_excel(』------.xlsx』,skiprows=3,usecols=『c』:『f』)
print(sheet)
#獲取資料庫中的資料
import pymysql
#建立乙個資料庫連線
conn = pymysql.connect(host=『localhost』,user=『root』,passwd=『123』,db=『telephone』,port=3306,charset=『utf8』)
query = 『select id,num from num_table』
#方法裡面需要填寫sql語句
df = pd.read_sql_query(query,conn)
print(df)
氣泡排序與查重 案列分析
現有乙個長度為10的陣列,陣列中的每個元素為0 1000的隨機數字,現請將此陣列按公升序排列並列印在頁面上,且不能有重複數字。題目分析 檢視題目,我們發現題目有如下幾個個要求 但是還有乙個隱藏要求。因為進行去重操作後,陣列的長度有可能會減少。由於題目要求輸出長度為10的陣列。所以我們要在最後進行最後...
python類方法的綜合應用案列
以下是我對類的一些思考,希望可以幫助大家啊 為類calendar新增兩個方法 乙個刪除完成項,乙個新增新增項 a code block 題目要就 刪除 給父母買禮物鍵值對,並新增 寫日記 20 00 class calendar def init self self.date 2020 08 08 ...
資料分析與挖掘案列 拉勾網資料分析崗位分析
無論出於興趣或者職業發展,於是最近開始做各種大小專案實踐,以拉勾網資料分析招聘職位分析廣州求職競爭情況!tools chrome python 3.6 jupyter os mac osx 在拉勾網搜尋頁面輸入資料分析,並且定位為廣州,用f12開啟開發除錯工具,根據下圖示紅的地方檢視詳細資訊 在ge...