pandas练习

1. NEV_sales.csv为2019年全国新能源汽车的销量数据,使用pandas提供的read_csv方法将csv文件导入为pandas的DataFrame对象df,同时利用DataFrame对象的head方法查看前两行数据的内容。
import pandas as pd
df = pd.read_csv('NEV_sales.csv')
df.head(10)
brand 2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
0 北京 36197.0 7005.0 8591.0 10000.0 10696.0 12503.0 26039.0 8969.0 4945.0 17690.0 2866.0 4258.0 27822.0 149759.0
1 比亚迪 10717.0 10675.0 12042.0 13048.0 16100.0 16010.0 25826.0 20945.0 22735.0 29219.0 14005.0 31870.0 35752.0 223192.0
2 传祺 8970.0 6046.0 4541.0 4010.0 3816.0 3406.0 3073.0 2014.0 1903.0 1654.0 838.0 370.0 3252.0 40641.0
3 奔腾 8735.0 2380.0 356.0 372.0 125.0 NaN NaN 90.0 NaN NaN NaN NaN 9.0 12058.0
4 宝骏 8352.0 9809.0 4636.0 5353.0 8698.0 6328.0 4556.0 546.0 1488.0 961.0 1011.0 8312.0 4692.0 60050.0
5 大众 8111.0 2304.0 2148.0 2759.0 2414.0 2536.0 3589.0 3888.0 5222.0 1574.0 2324.0 1642.0 NaN 38511.0
6 荣威 7077.0 1185.0 1829.0 1731.0 2981.0 3376.0 4930.0 8078.0 9282.0 6045.0 3825.0 6007.0 6751.0 56346.0
7 奇瑞 6036.0 2246.0 2832.0 3346.0 2889.0 2808.0 7361.0 4165.0 5039.0 3168.0 3158.0 3729.0 6186.0 46777.0
8 名爵 4951.0 3756.0 2734.0 2008.0 1898.0 696.0 356.0 1570.0 733.0 559.0 174.0 157.0 58.0 19592.0
9 东风启辰 3746.0 381.0 87.0 455.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN 4669.0
2、利用df这个数据集再创建一个新的数据集名为df_brand_index,它跟df的区别是,它将使用品牌(brand)作为索引,并显示后2行数据。
df_brand_index = df.set_index('brand')
df_brand_index.tail(2)
2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
brand
奔驰 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
总计 132858.0 72795.0 62768.0 64701.0 70432.0 67816.0 131133.0 96753.0 91397.0 106639.0 50842.0 90212.0 133645.0 1038346.0
3、获取df和df_brand_index的形状。
df.shape

(77, 15)

df_brand_index.shape

(77, 14)

4、查看df_brand_index数据类型,确保所有数据类型为数字。
df_brand_index.dtypes

2019-12 float64
2019-11 float64
2019-10 float64
2019-09 float64
2019-08 float64
2019-07 float64
2019-06 float64
2019-05 float64
2019-04 float64
2019-03 float64
2019-02 float64
2019-01 float64
2018-12 float64
2019累计 float64
dtype: object

5、使用describe()方法查看销售量的基本信息,如销售量的最大,最小,平均值等。

df_brand_index.describe()
2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
count 40.000000 38.000000 37.000000 38.000000 38.000000 38.000000 44.000000 45.000000 41.000000 41.000000 45.000000 42.000000 34.000000 5.900000e+01
mean 6642.900000 3831.315789 3392.864865 3405.315789 3706.947368 3569.263158 5960.590909 4300.133333 4458.390244 5201.902439 2259.644444 4295.809524 7861.470588 3.519817e+04
std 21358.363466 11807.801860 10339.247663 10571.305128 11603.860126 11203.349807 20112.219831 14553.902002 14461.270293 17076.162294 7754.008547 14503.124026 23425.312214 1.377841e+05
min 1.000000 10.000000 6.000000 6.000000 1.000000 2.000000 1.000000 1.000000 6.000000 9.000000 1.000000 3.000000 9.000000 1.000000e+00
25% 198.500000 201.000000 203.000000 157.750000 112.000000 57.000000 254.750000 137.000000 225.000000 239.000000 106.000000 172.750000 632.500000 1.025500e+03
50% 1500.500000 1027.500000 969.000000 505.000000 447.500000 624.000000 1041.000000 1068.000000 991.000000 961.000000 340.000000 493.500000 1688.000000 2.867000e+03
75% 4047.250000 2361.000000 2148.000000 2404.750000 2700.500000 2425.750000 3540.250000 2822.000000 2566.000000 2478.000000 1269.000000 2796.750000 4579.250000 1.872550e+04
max 132858.000000 72795.000000 62768.000000 64701.000000 70432.000000 67816.000000 131133.000000 96753.000000 91397.000000 106639.000000 50842.000000 90212.000000 133645.000000 1.038346e+06
#6、获取2019年11月和12月两个月的销量数据,并显示前2行。
df_brand_index[['2019-12', '2019-11']].head(2)
2019-12 2019-11
brand
北京 36197.0 7005.0
比亚迪 10717.0 10675.0
7、使用loc获取index标签从0到4的行,使用iloc获取index从位置0到位置4的行。采用编号作为索引的数据集使用loc(标签定位)
df.loc[0:4]
brand 2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
0 北京 36197.0 7005.0 8591.0 10000.0 10696.0 12503.0 26039.0 8969.0 4945.0 17690.0 2866.0 4258.0 27822.0 149759.0
1 比亚迪 10717.0 10675.0 12042.0 13048.0 16100.0 16010.0 25826.0 20945.0 22735.0 29219.0 14005.0 31870.0 35752.0 223192.0
2 传祺 8970.0 6046.0 4541.0 4010.0 3816.0 3406.0 3073.0 2014.0 1903.0 1654.0 838.0 370.0 3252.0 40641.0
3 奔腾 8735.0 2380.0 356.0 372.0 125.0 NaN NaN 90.0 NaN NaN NaN NaN 9.0 12058.0
4 宝骏 8352.0 9809.0 4636.0 5353.0 8698.0 6328.0 4556.0 546.0 1488.0 961.0 1011.0 8312.0 4692.0 60050.0
采用编号作为索引的数据集使用iloc(整数编号定位) - 跟python内置数据结构list类似,[0,4)
df.iloc[0:4]
brand 2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
0 北京 36197.0 7005.0 8591.0 10000.0 10696.0 12503.0 26039.0 8969.0 4945.0 17690.0 2866.0 4258.0 27822.0 149759.0
1 比亚迪 10717.0 10675.0 12042.0 13048.0 16100.0 16010.0 25826.0 20945.0 22735.0 29219.0 14005.0 31870.0 35752.0 223192.0
2 传祺 8970.0 6046.0 4541.0 4010.0 3816.0 3406.0 3073.0 2014.0 1903.0 1654.0 838.0 370.0 3252.0 40641.0
3 奔腾 8735.0 2380.0 356.0 372.0 125.0 NaN NaN 90.0 NaN NaN NaN NaN 9.0 12058.0
# 8、获取北京2019年11月的销量。
df_brand_index.loc['北京', '2019-11']

7005.0

df_brand_index.iloc[0, 1] # 1st column is 2019-11 in df_brand_index

7005.0

9、获取前5个品牌从2019年10月到12月的销量。
df_brand_index.loc['北京':'宝骏', '2019-12':'2019-10']
2019-12 2019-11 2019-10
brand
北京 36197.0 7005.0 8591.0
比亚迪 10717.0 10675.0 12042.0
传祺 8970.0 6046.0 4541.0
奔腾 8735.0 2380.0 356.0
宝骏 8352.0 9809.0 4636.0
10、获取2019年11月和12月销量均大于3000台的品牌数据。
df_brand_index[(df_brand_index['2019-12'] > 3000) & (df_brand_index['2019-11'] > 3000)]
2019-12 2019-11 2019-10 2019-09 2019-08 2019-07 2019-06 2019-05 2019-04 2019-03 2019-02 2019-01 2018-12 2019累计
brand
北京 36197.0 7005.0 8591.0 10000.0 10696.0 12503.0 26039.0 8969.0 4945.0 17690.0 2866.0 4258.0 27822.0 149759.0
比亚迪 10717.0 10675.0 12042.0 13048.0 16100.0 16010.0 25826.0 20945.0 22735.0 29219.0 14005.0 31870.0 35752.0 223192.0
传祺 8970.0 6046.0 4541.0 4010.0 3816.0 3406.0 3073.0 2014.0 1903.0 1654.0 838.0 370.0 3252.0 40641.0
宝骏 8352.0 9809.0 4636.0 5353.0 8698.0 6328.0 4556.0 546.0 1488.0 961.0 1011.0 8312.0 4692.0 60050.0
名爵 4951.0 3756.0 2734.0 2008.0 1898.0 696.0 356.0 1570.0 733.0 559.0 174.0 157.0 58.0 19592.0
总计 132858.0 72795.0 62768.0 64701.0 70432.0 67816.0 131133.0 96753.0 91397.0 106639.0 50842.0 90212.0 133645.0 1038346.0
11、2019年11月销量为6046的品牌。
df_brand_index[df_brand_index['2019-11']==6046].index

Index([‘传祺’], dtype=‘object’, name=‘brand’)

你可能感兴趣的:(数据分析与可视化,pandas,python,jupyter)