python數據處理——pandas的基本使用(一)

1.1 文本讀取,pd.read_csv(),pd.read_table();

pandas 讀取文本(txt、excel)中會常用到兩個函數:**read_csv() 和 read_table() ;兩個函數出去讀取文本不一樣之外,讀取文本時前者是以,(逗號)**爲分隔符讀取,後者以 tab(空格)爲 分隔符進行讀取的,把讀取到的文本轉化成二維 Dataframe 數據格式,直觀整潔以便後續處理,以 **pd.read_table()**爲例:

**pd.read_table()**用到的參數有:

Snipaste_2020-02-10_16-20-30.jpg

裏面參數很多,但常用到的下面幾個

  • filepath,欲讀取的txt、csv文件、網頁內容;

  • seq ,分割符來對字符串進行表格劃分,一般來說 read_table()默認的爲 tab(空格)read_csv() 默認爲,(逗號),可以根據具體情況自己設置;

  • usercols,可以設置提取自己需要的列名;

下面就是一個url網址內容,文本之間以 Tab鍵 作爲分隔符:

Snipaste_2020-02-10_16-32-39.jpg

利用 pandas 對裏面的內容進行讀取,展示如下:

url ='http://bit.ly/chiporders'

df1 =pd.read_table(url)
# 讀取前5行數據
df1.head()

Snipaste_2020-02-10_16-43-46.jpg

# usecols 參數作爲選取特定的列;
df = pd.read_table(url,usecols = ['order_id','item_price'])
df.head()

Snipaste_2020-02-10_16-55-03.jpg

不設置第一行爲列名
#header默認爲0,即以第一列爲列名,這裏設爲None,意味不設置第一行爲列名;
df11 = pd.read_table(url,header =None)
df11.head()

Snipaste_2020-02-10_16-55-11.jpg

1.2 讀取時用names修改列名
#names =***,可以自定義設置列名
user_cols = ['id','quantity','name','choice','price']
df= pd.read_table(url,header =None,names = user_cols)
df.head()

Snipaste_2020-02-10_20-53-36.jpg

1.3 用describe()函數對描述大致數據
#對整個Dataframe各列做個基本統計;
# count:數
# unique: 總體分爲3類;
# top:頻率最高的value;
# freq:出現頻率最高的次數;
df.describe()

Snipaste_2020-02-10_21-05-28.jpg

1.4 shape函數返回二維數據的列數、行數
df.shape#查看Dataframe的整體數據

Snipaste_2020-02-10_21-05-56.jpg

1.5 讀取到的 Dataframe 每一列數據類型爲Series;
#列出某一列的數據,爲一個series數據
df['name']#也可以df.name
print(type(df['name']))

Snipaste_2020-02-10_21-06-10.jpg

1.6 處理數據中時利用columns改變列名:
#在Dataframe數據中更改列名,在每個列名後面加一個‘_’;
df.columns = [str(i)+'_' for i in df.columns]
df

Snipaste_2020-02-10_21-06-24.jpg

1.7 利用drop函數刪除特定的列;
#pd.DataFrame去除某一列,用到的函數drop,
#  第一個參數爲單個標籤或多個標籤;
#  axis表示欲刪除的爲行或者列,0爲行,1爲列;
#  inplace =True,以及操作
df1 =df
df1.drop(['name_','choice_'],axis = 1,inplace = True)
df1.head()

Snipaste_2020-02-10_21-06-35.jpg

1.8 利用map函數對列中數據格式進行變換;
#對某一列數據進行修改;把price_中的$變成¥;利用lambda映射;
df['price_'] = df['price_'].map(lambda x:str(x).replace('$','¥'))
df

Snipaste_2020-02-10_21-06-48.jpg

1.9 to_csv將 Dataframe數據直接寫到csv文件中;
#將 Dataframe寫出csv文件,
# 第一個參數描述欲輸出的文件名,若提供的爲None,則返回的是string;
# index表示行索引,默認爲True,
#   header = True表示的是不保存列名。
# encoding  = 'gbk',輸入編碼方式爲gbk
df.to_csv('E:/ceshi/ab.csv',index =False,header =True,encoding = 'gbk')

Snipaste_2020-02-10_21-17-50.jpg

注:上面的代碼運行都是在jupyter notebook編輯器上進行的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章