1.1 文本讀取,pd.read_csv(),pd.read_table();
pandas 讀取文本(txt、excel)中會常用到兩個函數:**read_csv() 和 read_table() ;兩個函數出去讀取文本不一樣之外,讀取文本時前者是以,(逗號)**爲分隔符讀取,後者以 tab(空格)爲 分隔符進行讀取的,把讀取到的文本轉化成二維 Dataframe 數據格式,直觀整潔以便後續處理,以 **pd.read_table()**爲例:
**pd.read_table()**用到的參數有:
裏面參數很多,但常用到的下面幾個
-
filepath,欲讀取的txt、csv文件、網頁內容;
-
seq ,分割符來對字符串進行表格劃分,一般來說 read_table()默認的爲 tab(空格),read_csv() 默認爲,(逗號),可以根據具體情況自己設置;
-
usercols,可以設置提取自己需要的列名;
下面就是一個url網址內容,文本之間以 Tab鍵 作爲分隔符:
利用 pandas 對裏面的內容進行讀取,展示如下:
url ='http://bit.ly/chiporders'
df1 =pd.read_table(url)
# 讀取前5行數據
df1.head()
# usecols 參數作爲選取特定的列;
df = pd.read_table(url,usecols = ['order_id','item_price'])
df.head()
不設置第一行爲列名
#header默認爲0,即以第一列爲列名,這裏設爲None,意味不設置第一行爲列名;
df11 = pd.read_table(url,header =None)
df11.head()
1.2 讀取時用names修改列名
#names =***,可以自定義設置列名
user_cols = ['id','quantity','name','choice','price']
df= pd.read_table(url,header =None,names = user_cols)
df.head()
1.3 用describe()函數對描述大致數據
#對整個Dataframe各列做個基本統計;
# count:數
# unique: 總體分爲3類;
# top:頻率最高的value;
# freq:出現頻率最高的次數;
df.describe()
1.4 shape函數返回二維數據的列數、行數
df.shape#查看Dataframe的整體數據
1.5 讀取到的 Dataframe 每一列數據類型爲Series;
#列出某一列的數據,爲一個series數據
df['name']#也可以df.name
print(type(df['name']))
1.6 處理數據中時利用columns改變列名:
#在Dataframe數據中更改列名,在每個列名後面加一個‘_’;
df.columns = [str(i)+'_' for i in df.columns]
df
1.7 利用drop函數刪除特定的列;
#pd.DataFrame去除某一列,用到的函數drop,
# 第一個參數爲單個標籤或多個標籤;
# axis表示欲刪除的爲行或者列,0爲行,1爲列;
# inplace =True,以及操作
df1 =df
df1.drop(['name_','choice_'],axis = 1,inplace = True)
df1.head()
1.8 利用map函數對列中數據格式進行變換;
#對某一列數據進行修改;把price_中的$變成¥;利用lambda映射;
df['price_'] = df['price_'].map(lambda x:str(x).replace('$','¥'))
df
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')
注:上面的代碼運行都是在jupyter notebook編輯器上進行的!