【Python】Python常用的Series 和 Dataframe处理方法
生活随笔
收集整理的這篇文章主要介紹了
【Python】Python常用的Series 和 Dataframe处理方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Series 和 Dataframe格式的數據處理工作,有很多常用的也比較巧妙的小方法,現總結下,方便理解應用。
本文會已方法基礎格式+代碼樣例的形式加以講解說明。
一 基礎方法介紹
Series 和 Dataframe
import numpy as np import pandas as pd #from pandas import Sereis, DataFrame df = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) ser = pd.Series(np.arange(3.)) df = pd.DataFrame(data, columns = ['A', 'B', 'C', 'D'])行列
多種形式,靈活應用
''' 行 ''' df.loc df.irow(0) = 1 df.head() #返回df的前幾行數據,默認為前五行,需要前十行則df.head(10) df.tail() #返回df的后幾行數據,默認為后五行,需要后十行則df.tail(10) df.iloc[-1] #選取DataFrame最后一行,返回的是Series df.iloc[-1:] #選取DataFrame最后一行,返回的是DataFrame df.loc[df['A'] == 'cutoff',]''' 列 ''' df.columns #利用字段名進行切片索引 df['A'] = 1 #選擇表格中的'A'列,使用類字典屬性,返回的是Series類型 df.A = 1 #選擇表格中的'A'列,使用點屬性,返回的是Series類型 df[['A','B']] #選擇表格中的'A','B'列,返回的是DataFrame屬性 df['A':'B'] #利用index值進行切片,返回的是*A*前閉后閉*B*的DataFrame #即末端是包含的 #利用字段所在的位置進行切片索引 df.icol(0) df[0:2] #返回第1列到第2列的所有行,前閉后開,包括前不包括后 df[1:2] #返回第2列,從0計,返回的是單行,通過有前后值的索引形式,#如果采用df[1]則報錯 df.ix[1:2] #返回第2列的第三種方法,返回的是DataFrame,跟data[1:2]同''' 行列綜合使用 ''' df.loc['a',['B','C']] #返回'a'行'B'、'C'列,這種用于選取行索引列索引已知 df.iat[1,1] #選取第二行第二列,用于已知行、列位置的選取。 df.ix[1:3,[0,2]] #選擇第2-4行第1、3列的值 df.ix[df.a>5,3] df.ix[1:3,['a','e']] data.iloc[:,0] # python3調整的方法索引
df.index df.set_index('A')# 設置A列為索引列 df.reset_index(drop=True)#drop是否保留原索引值
df.values df['A'].values命名
df.columns = [['A','B','C','D']] df.rename(columns = {'A':'B'})新增字段
df['B'] = np.where(df['A'].str.contains('str'),1,0)合并
df1 = df1.append(df2)分組
grp1 = df.groupby(['code'])['code'].agg([pd.Series.count]).reset_index().rename(columns={'count':'nameA','code':'nameB'})匹配
df = pd.merge(df1,df2,left_on = 'id',right_on = 'ID',how = 'left')排序
df.sort_values(by = 'A',asending = Flase) #True 和Flase做正序逆序選擇行列轉置
df = df.T去重
df.drop_duplicates('id', inplace = False)刪除行列
df = df.drop(df[dfn[target] == 0].index) del df['A'] df.dropna(axis=0, how='any', inplace=True)缺失值填充
df.fillna(0)唯一值
df['A'].unique()python去除字符串中空格和特殊符號的方法
" xyz ".strip() # returns "xyz" " xyz ".lstrip() # returns "xyz " " xyz ".rstrip() # returns " xyz" " x y z ".replace(' ', '') # returns "xyz"Dataframe字段元素級數據處理
df['B'] = df['A'].map(lambda x : 'short' if int(x) <5 else 'midle' if int(x)<30 else 'long') df['C'] = df[['A','B']].apply(lambda x: float('{x:.2f}'.format(x = (x['A'] / x['B'])*100) if x['B'] > 0 else '0.00'),axis = 1)二 綜合應用實例講解
下面代碼較為綜合的運用了Dataframe和Series中較為常見的一些數據處理方法:
總結
以上是生活随笔為你收集整理的【Python】Python常用的Series 和 Dataframe处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】csv、excel、pk
- 下一篇: 【Python】透视表、统计表、汇总表、