import numpy as np
import pandas as pd
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
pd.set_option('display.width', 500)#設定輸出一行中顯示的數量
data = pd.read_excel(r'c:\users\lenovo\desktop\sales.xlsx', sheet_name='sheet1', header=0) #sheet_name輸出excel哪個表中的資訊,header=0表示這個表中第一行有頭部資訊
print('data.head() = \n', data.head())#預設讀取檔案的前5行資訊,也可以在括號中設定行數,例如print('data.head() = \n', data.head(10))
print('data.tail() = \n', data.tail())#表示讀取後面幾行的資訊,預設為5行,也可以設定,同上
print('data.dtypes = \n', data.dtypes)#輸出每列資料的資料型別
print(type(data))#生成的資料為二維表dataframe
print('data.columns = \n', data.columns)#輸出的是每一列的列名
for c in data.columns:
print(c, end=' ')
data['total'] = data['jan'] + data['feb'] + data['mar']#將後三列'jan', 'feb', 'mar'相加,得到新的一列'total'
print('data.head() = \n', data.head())#檢查一下,看是否多出total一列,經檢查,多出total一列,並且值為三列的和
print(data['jan'].sum())#計算'jan'列的總和,後面三個分別為計算'jan'列的最小值,最大值,均值
print(data['jan'].min())
print(data['jan'].max())
print(data['jan'].mean())
print(data.describe())#對資料為數字的列做乙個簡單的描述統計,裡面的內容有每一列的個數(正常的),均值,標準差,最小值,下四分位數,中位數,上四分位數,最大值
print(data[['jan', 'feb', 'mar']].describe())#對'jan', 'feb', 'mar'三列做描述性統計,統計的內容同上
s1 = data[['jan', 'feb', 'mar', 'total']].sum()# 新增一行
print(s1)
s2=pd.dataframe(data=s1)#將s1算出的四個資料和'jan', 'feb', 'mar', 'total'生成乙個二維表
print(s2)
print(s2.t)#將s2進行轉置,為了將算出的4個資料放入excel中
print(s2.t.reindex(columns=data.columns))#將excel表中的列全表示出來,有值的賦值,沒值的用nan填充
#即(以下三行**相當於從s1 = data[['jan', 'feb', 'mar', 'total']].sum()到print(s2.t.reindex(columns=data.columns))這幾行的內容)
s=pd.dataframe(data=data[['jan','feb','mar','total']].sum()).t
s=s.reindex(columns=data.columns,fill_value=0)#用0填充
print(s)
data=data.rename(index=)#將索引為15的行重新命名,名字為total
print(data.tail())#輸出後幾行。預設為5行
def enum_row(row):
print(row['state'])#輸出state這列的值
state_to_code = #給洲的名字做簡稱
states=state_to_code.keys()#將state_to_code的鍵值賦給states
print(fuzz.ratio('python package', 'pythonpackage'))#輸出字串python package和pythonpackage的相似度
print(process.extract('mississippi', states))#提取states中與mississippi幾個相似的值
print(process.extract('mississipi',states,limit=1))#提取states中與mississipi相似的值,提取乙個最相似的,limit為提取的個數
print(process.extractone('mississipi',states))#同上,提取乙個
def find_state_code(row):
if row['state'] != 0:
print(process.extractone(row['state'], states, score_cutoff=80))#相似度為80以上的返回乙個
def capital(str):
return str.capitalize()#將字串的第乙個字母變為大寫,其餘為小寫
def correct_state(row):
if row['state'] != 0:
state = process.extractone(row['state'], states, score_cutoff=80)
if state:
state_name = state[0]
return ' '.join(map(capital, state_name.split(' ')))#兩個大寫字母中間用空格分開
return row['state']
print('after correct state:\n', data['state'])
'''加一列state code(簡寫)'''
def fill_state_code(row):
if row['state'] != 0:
state = process.extractone(row['state'], states, score_cutoff=80)
if state:
state_name = state[0]
return state_to_code[state_name]
return ''
data.insert(5, 'state code', np.nan)#加入到第六列
print(data['state code'])
print('**********====group by***************=')
print(data.groupby('state code'))#將state code列中相同的合併
print(data.groupby('state code').sum())#計算每乙個洲上和是多少,重複洲的名字合併了
data.to_excel(r'c:\users\lenovo\desktop.sales.xls', sheet_name='sheet1', index=false)#執行錯誤
Python之資料處理
靠別人不如靠自己,學學學學學學學學!原資料 需求 coding utf 8 txtfile aminer1.txt newtxtfile open new txtfile,w with open txtfile,r as file to read lines file to read.readlin...
python之資料處理
檔案資料讀寫的基本操作 import this 本地檔案的界定 指向乙個本地儲存的檔案,是乙個連線或者乙個對映 path1 c users 11786 desktop test.txt 正斜線兩個或者反斜線乙個來用於資料路徑的表達 再或者用r 寫在檔案路徑外面 推薦第三種 path2 c users...
Python 資料處理
將檔案切分,存入列表 strip split with open james.txt as jaf data jaf.readline james data.strip split 資料檔案為 2 34,3 21,2.34,2.45,3.01,2 01,2 01,3 10,2 22 print ja...