Pandas

一种列存数据分析 API。它是用于处理和分析输入数据的强大工具,很多机器学习框架都支持将 pandas 数据结构作为输入。

pandas 中的主要数据结构被实现为以下两类:

  • DataFrame,您可以将它想象成一个关系型数据表格,其中包含多个行和已命名的列。
  • Series,它是单一列。DataFrame 中包含一个或多个 Series,每个 Series 均有一个名称。

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pandas as pd
city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
population = pd.Series([852469, 1015785, 485199])

pd.DataFrame({ 'City name': city_names, 'Population': population })

#文件加载
california_housing_dataframe = pd.read_csv("https://storage.googleapis.com/ml_universities/california_housing_train.csv", sep=",")
california_housing_dataframe.describe() #显示表格
california_housing_dataframe.head() #显示前几行
california_housing_dataframe.hist('housing_median_age') #绘制直方图

#数据读取 可以用作numpy参数
cities['City name']
cities['City name'][1]
cities[0:2]
##series的增加
cities['Area square miles'] = pd.Series([46.87, 176.53, 97.92])
cities['Population density'] = cities['Population'] / cities['Area square miles']
#增加一列:san起始且面积大于50
cities['new'] = cities['City name'].apply(lambda val: val.startswith('San')) & (cities['Area square miles'] > 50)

#索引
#Series 和 DataFrame 对象也定义了 index 属性,该属性会向每个 Series 项或 DataFrame 行赋一个标识符值。
#默认情况下,在构造时,pandas 会赋可反映源数据顺序的索引值。索引值在创建后是稳定的;
#也就是说,它们不会因为数据重新排序而发生改变
cities.index
cities.reindex([2, 0, 1]) #手动排序
cities.reindex(np.random.permutation(cities.index)) #随机重排