总结的方法所用实例为 sklearn&tensorflow机器学习使用指南第二章中的房屋价格投资预测项目
housing = pd.read_csv("housing.csv")
head() 方法
用于查看数据集的前5行
print(housing.head())
longitude latitude housing_median_age total_rooms total_bedrooms population households median_income median_house_value ocean_proximity
0 -122.23 37.88 41.0 880.0 129.0 322.0 126.0 8.3252 452600.0 NEAR BAY 1 -122.22 37.86 21.0 7099.0 1106.0 2401.0 1138.0 8.3014 358500.0 NEAR BAY 2 -122.24 37.85 52.0 1467.0 190.0 496.0 177.0 7.2574 352100.0 NEAR BAY 3 -122.25 37.85 52.0 1274.0 235.0 558.0 219.0 5.6431 341300.0 NEAR BAY 4 -122.25 37.85 52.0 1627.0 280.0 565.0 259.0 3.8462 342200.0 NEAR BAY
info() 方法
用于快速查看数据的描述,例如总行数,每个属性的类型以及非空值的数量
print(housing.info()) <class 'pandas.core.frame.DataFrame'> RangeIndex: 20640 entries, 0 to 20639 Data columns (total 10 columns): longitude 20640 non-null float64 latitude 20640 non-null float64 housing_median_age 20640 non-null float64 total_rooms 20640 non-null float64 total_bedrooms 20433 non-null float64 population 20640 non-null float64 households 20640 non-null float64 median_income 20640 non-null float64 median_house_value 20640 non-null float64 ocean_proximity 20640 non-null object dtypes: float64(9), object(1) memory usage: 1.6+ MB
value_counts() 方法
查看某一列数据中都有哪些类别,以及每个类别中数据的数量。我们使用 ocean_proximity 这一列的数据,看出一共有5类,INLAND 这一类数量最多为6551
print(housing["ocean_proximity"].value_counts()) <1H OCEAN 9136 INLAND 6551 NEAR OCEAN 2658 NEAR BAY 2290 ISLAND 5 Name: ocean_proximity, dtype: int64
describe() 方法
显示数值属性的概括,count 是数据的数量;mean, min, max 分别表示平均值,最小以及最大值;std 是标准差,用来揭示数据分散度;25% 50% 75% 对应分位数,比如 25% 的房子年龄中位数小于18,而50%的小于29。
print(housing.describe()) longitude latitude housing_median_age total_rooms total_bedrooms population households median_income median_house_value count 20640.000000 20640.000000 20640.000000 20640.000000 20433.000000 20640.000000 20640.000000 20640.000000 20640.000000 mean -119.569704 35.631861 28.639486 2635.763081 537.870553 1425.476744 499.539680 3.870671 206855.816909 std 2.003532 2.135952 12.585558 2181.615252 421.385070 1132.462122 382.329753 1.899822 115395.615874 min -124.350000 32.540000 1.000000 2.000000 1.000000 3.000000 1.000000 0.499900 14999.000000 25% -121.800000 33.930000 18.000000 1447.750000 296.000000 787.000000 280.000000 2.563400 119600.000000 50% -118.490000 34.260000 29.000000 2127.000000 435.000000 1166.000000 409.000000 3.534800 179700.000000 75% -118.010000 37.710000 37.000000 3148.000000 647.000000 1725.000000 605.000000 4.743250 264725.000000 max -114.310000 41.950000 52.000000 39320.000000 6445.000000 35682.000000 6082.000000 15.000100 500001.000000
reset_index()方法
用于生成新的索引 id。因为一旦数据发生合并,其索引 id 仍然引用原来的,这样 id 会重复。使用此方法后,生成新的按照顺序的 id,原来的索引 id 会变成列名为 index 的一列。若将参数 drop 的值设为 True,则 index 这一列会被删除。
import pandas as pd rsi1 = pd.DataFrame({'age':[12,13,14,15,16], 'height':[155,160,178,142,190]}) rsi2 = pd.DataFrame({'age':[19], 'height':[183]}) rsi = [rsi1, rsi2] result1 = pd.concat(rsi) print(result1) age height 0 12 155 1 13 160 2 14 178 3 15 142 4 16 190 0 19 183
result2 = result1.reset_index() print(result2) index age height 0 0 12 155 1 1 13 160 2 2 14 178 3 3 15 142 4 4 16 190 5 0 19 183
result3 = result2.reset_index(drop=True) print(result3) age height 0 12 155 1 13 160 2 14 178 3 15 142 4 16 190 5 19 183
最后提一点和 pandas 无关的,但是可以让数据可视化即画图。画图需要用到库 matplotlib,画直方图用到其中的 hist() 方法。其中 bins 表示条状图的数量(对应 x 轴),figsize 是图片大小。
housing.hist(bins=50, figsize=(20,15))
plt.show