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编辑器上进行的!
网友评论