Abstract: pandas基础命令总结笔记。
1.简介
pandas和numpy是用Python做数据分析最基础且最核心的库
2.缩写解释 & 库的导入
df --- 任意的pandas DataFrame(数据框)对象s --- 任意的pandas Series(数组)对象
import pandas as pd # 导入pandas库并简写为pd import numpy as np # 导入numpy库并简写为np
3.数据的导入
pd.read_csv(filename) # 导入csv格式文件中的数据 pd.read_table(filename) # 导入有分隔符的文本 (如TSV) 中的数据 pd.read_excel(filename) # 导入Excel格式文件中的数据 pd.read_sql(query, connection_object) # 导入SQL数据表/数据库中的数据 pd.read_json(json_string) # 导入JSON格式的字符,URL地址或者文件中的数据 pd.read_html(url) # 导入经过解析的URL地址中包含的数据框 (DataFrame) 数据 pd.read_clipboard() # 导入系统粘贴板里面的数据 pd.DataFrame(dict) # 导入Python字典 (dict) 里面的数据,其中key是数据框的表头,value是数据框的内容。
4.数据的导出
df.to_csv(filename) # 将数据框 (DataFrame)中的数据导入csv格式的文件中 df.to_excel(filename) # 将数据框 (DataFrame)中的数据导入Excel格式的文件中 df.to_sql(table_name,connection_object) # 将数据框 (DataFrame)中的数据导入SQL数据表/数据库中 df.to_json(filename) # 将数据框 (DataFrame)中的数据导入JSON格式的文件中
5.创建测试对象
pd.DataFrame(np.random.rand(10,5)) # 创建一个5列10行的由随机浮点数组成的数据框 DataFrame
//# 从一个可迭代的对象 my_list 中创建一个数据组 my_list = ['Kesci',100,'欢迎来到科赛网'] pd.Series(my_list) df.index = pd.date_range('2017/1/1', period = df.shape[0]) # 添加一个日期索引 index
import pandas as pd import numpy as np df= DataFrame(np.random.rand(10,10)) df.index = pd.date_range('2018/1/1',period=df.shape[0]) df
6.数据的查看与检查
df.head(n) # 查看数据框的前n行 df.shape #查看数据框的行数与列数 df.tail(3) #查看数据框的最后n行 df.info() #查看数据框的索引、数据类型和内存信息 df.describe() # 对于数据类型为数值型的列,查询其描述性统计的内容 s.value_counts(dropna=False) #查询每个独特数据值出现次数统计 df.dtypes #查看每列的数据类型 //示例 df = pd.DataFrame(np.random.rand(10,5)) df.head(3) # 查看数据框的前3行 df.apply(pd.Series.value_counts) #查询数据框中每个列的独特数据值出现次数统计 df = pd.DataFrame(np.random.rand(10,5)) df.tail(4) #查看数据框的最后4行 df.shape #查看数据框的行数与列数 s = pd.Series([1,2,3,4,np.nan,5,5,6,7,8]) s.value_counts(dropna=False)
# 将字符型转为浮点数 dollarizer = lambda x: float(x[1:-1]) chipo.item_price = chipo.item_price.apply(dollarizer) # change item_price into float print chipo.item_price
7.数据的选取
df[col] #以数组series形式返回选取的列 df = pd.DataFrame(np.random.rand(5,5),columns=list('ABCDE')) df['C']
df[[col1,col2]] # 以新的数据框(DataFrame)的形式返回选取的列 df = pd.DataFrame(np.random.rand(5,5),columns=list('ABCDE')) df[['B','E']]
s.iloc[0] #按照位置选取 s = pd.Series(np.array(['I','Love','Data'])) s.iloc[0]
s.loc['index_one'] # 按照索引选取 s = pd.Series(np.array(['I','Love','Data'])) s.loc[1]
df.iloc[0,:] # 选取第一行 df = pd.DataFrame(np.random.rand(5,5),columns=list('ABCDE')) df.iloc[0,:]
df.iloc[0,0] # 选取第一行的第一个元素 df = pd.DataFrame(np.random.rand(10,5),columns=list('ABCDE')) df.iloc[0,0]
euro.iloc[: , :-3] # Select all columns except the last 3
# .loc is another way to slice, using the labels of the columns and indexes print euro12.loc[euro12.Team.isin(['E