python資料處理之6 3

2021-09-12 14:25:27 字數 3655 閱讀 1885

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...