python基礎課程(三) 資料處理

2021-09-11 08:57:42 字數 4546 閱讀 1424

# -*- coding: utf-8 -*-

"""created on tue feb 26 13:32:28 2019

@author: administrator

""""""

pandas 資料處理

"""from pandas import dataframe

from pandas import series

df=dataframe()

df#判斷整行重複

df.duplicated()

#判斷一列重複

df.duplicated('name')

df.drop_duplicates('age')

df1=df.drop_duplicates('name')

df1#刪除字串左、右或首、尾指定的字元

df['name'].str.strip()

df['name'].str.rstrip('n')

#重置索引

df.set_index('name')

df4=df.set_index('name')

df4.ix['john']#索引查詢

df4.loc['john']#索引查詢

from pandas import dataframe

from pandas import  read_excel

df2=read_excel(r'k:\\demodata\\rz.xlsx',sheetname='sheet2')

df2"""

rz.xlsx的sheet2資料:

學號  姓名  英語    數分    高代  解幾

0  2308024241  成龍  76  40.0  23.0  60

1  2308024244  周怡  66  47.0  47.0  44

2  2308024251  張波  85   nan  45.0  60

3  2308024249  朱浩  65  72.0  62.0  71

4  2308024219  封印  73  61.0  47.0  46

5  2308024201  遲培  60  71.0  76.0  71

6  2308024347  李華  67  61.0  65.0  78

7  2308024307  陳田  76  69.0   nan  69

8  2308024326  余皓  66  65.0  61.0  71

9  2308024219  封印  73  61.0  47.0  46

"""#缺失資料識別

df2.isnull()

df2.notnull()

#缺失資料刪除

df2.dropna()

newdf=df2.dropna()

newdf

#缺失值填充

df2.fillna('101')

#用前乙個值替代空值

df2.fillna(method='pad')

#用後乙個值代替空值

df2.fillna(method='bfill')

#用均值來填充

df2.fillna(df.mean())

#用選定列的均值來填充

df2.fillna(df.mean()['高代':'解幾'])#用解幾的平均值填充高代的空值

#用不同列用指定的值填充

df2.fillna()

"""i_nuc.xls的資料:

學號    **    ip

2308024241    18922254812     221.205.98.55

2308024244    13522255003      183.184.226.205

2308024251    13422259938       221.205.98.55

2308024249    18822256753    222.31.51.200

2308024219    18922253721      120.207.64.3

2308024201        222.31.51.200

2308024347    13822254373        222.31.59.220

2308024307    13322252452    221.205.98.55    

2308024326    18922257681    183.184.230.38

2308024320    13322252452    221.205.98.55    

2308024342    18922257681    183.184.230.38

2308024310    19934210999    183.184.230.39

2308024435    19934210911    185.184.230.40

2308024432    19934210912    183.154.230.41

2308024446    19934210913    183.184.231.42

2308024421    19934210914    183.154.230.43

2308024433    19934210915    173.184.230.44

2308024428    19934210916    

2308024402    19934210917    183.184.230.4

2308024422    19934210918    153.144.230.7

"""df3=read_excel(r'k:\\demodata\\i_nuc.xls',sheetname='sheet4')

df3.head()#前5行資料

df3['**']#抽取某列

df3['**']=df3['**'].astype(str)#**列轉換成字串

#slice操作,抽取

df3['**'].str.slice(0,3)#抽取**前三位

df3['**'].str.slice(3,7)

df3['**'].str.slice(7,11)

#split操作,字段拆分

df3['ip'].str.strip()

df3['ip'].str.split('.',1,true)#按第一"."切,新增1列

newdf3=df3['ip'].str.split('.',1,true)

newdf3.columns=['ip1','ip2-4']#給新dataframe新增列名

#條件過濾

df3=read_excel(r'k:\\demodata\\i_nuc.xls',sheetname='sheet4')

df3[df3.**》13500000000]

df3[df3.**.between(1340000000,13999999999)]

df3[(df3.**》=13422259938)&(df3.**<138222254373)]

import numpy

r=numpy.random.randint(0,10,3)

df3.loc[r,:]#抽取r行資料

df5=df3.set_index('學號')

df5.loc[2308024241:2308024201]#按索引抽取範圍內資料

df5.loc[:,'**'].head()#選取「**」列的資料

import pandas as pd

from pandas import dataframe

df6=dataframe()

df6.loc[[1,2]]

#數**算

"""df2

out[249]:

學號  姓名  英語    數分    高代  解幾

0  2308024241  成龍  76  40.0  23.0  60

1  2308024244  周怡  66  47.0  47.0  44

2  2308024251  張波  85   nan  45.0  60

3  2308024249  朱浩  65  72.0  62.0  71

4  2308024219  封印  73  61.0  47.0  46

5  2308024201  遲培  60  71.0  76.0  71

6  2308024347  李華  67  61.0  65.0  78

7  2308024307  陳田  76  69.0   nan  69

8  2308024326  余皓  66  65.0  61.0  71

9  2308024219  封印  73  61.0  47.0  46

"""df2['解幾'].astype(int).min()

df2['解幾'].astype(int).max()

#scale測量,標準化

from sklearn import preprocessing

import numpy as np

df9=df2['數分'].fillna(80)

df9_scaled=preprocessing.scale(df9)

python基礎課程

1.運算子 可以代表兩個數相加也可以代表兩個字串相連 a 12 22 print a b good job print b 代表兩個數相減也可以代表求乙個數的相反數 a 7print a 代表兩個數相乘也可以代表字串重複 a 5 898 print a b hello 3 print b 代表兩個數...

python 資料處理基礎

2 python 語法簡介 型別轉化 int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eva...

Python基礎課程筆記(一)

1 python www.python.org 2 print hello python print hello python 3 布林值 and,or,not 4 字串 都行。print 100 200 100 200 5 python注釋是 6 如果乙個字串包含很多需要轉義的字元,對每個字元都要...