当前位置:   article > 正文

pandas入门与数据准备与简单筛选统计_typeerror: ndframe.describe()

typeerror: ndframe.describe()

pandas主要数据结构:

  • DataFrame 一个关系数据表格,包含多个行和已命名的列
  • Series 单一列,DataFrame中包含一个或多个Series,每个series均有一个名称。

下面示例展示了如何创建Series及DataFrame

  1. import pandas as pd
  2. print(pd.__version__)
  3. #创建Series对象
  4. city_name = pd.Series(['Sanfrancisco', 'Sanjose', 'Sacramento'])
  5. city_population = pd.Series([852469, 1015785, 485199])
  6. city = pd.DataFrame({'city name' : city_name, 'population' : city_population})
  7. #将映射string列名称的dict传递给各自的Series,从而创建DataFrame
  8. #如果Series在长度上不一致,系统则会用特殊的NA/NaN值填充缺失的值
  9. print(city)
  10. print(city['city name'][1])
  11. #根据常用的dict/list指令访问DataFrame数据
  12. print(city[0:2])
  13. #切片
  14. c = city_population / 1000
  15. print(c)
  16. #应用基本指令运算
  17. city = city.reindex([2,0,1])
  18. print(city)
  19. #以手动重新排列各行的顺序
  20. city.apply(lamba val: val>10000)
  21. 调用apply函数,该函数是pandas里自由度最高的函数,其参数类似于c++的函数指针,需自己实现,遍历整个dataframe,并将所有结果组合起来返回

输出结果

  1. 0.24.2
  2. city name population
  3. 0 Sanfrancisco 852469
  4. 1 Sanjose 1015785
  5. 2 Sacramento 485199

读取整个csv文件,并将其加载到DataFrame

  1. import pandas as pd
  2. california_housing_dataframe = pd.read_csv("https://download.mlcc.google.cn/mledu-datasets/california_housing_train.csv", sep=",")
  3. print(california_housing_dataframe.describe())
  4. #显示一些统计信息
  5. print(california_housing_dataframe.head())
  6. #显示该DataFrame的前几个记录
  7. california_housing_dataframe.hist('housing_median_age')
  8. #画出某一列中的值的分布直方图

读取csv文件

  1. import pandas as pd
  2. new = pd.read_csv('city.csv')//csv文件名称
  3. print(new)

利用web api进行获取数据

  1. import requests
  2. import json
  3. import pandas as pd
  4. import numpy as np
  5. url = 'https://api.seniverse.com/v3/weather/now.json?key=kutzoofe5f2h1w
  6. yc&location=zibo&language=zh-Hans&unit=c'
  7. r = requests.get(url)
  8. print(r.text)#返回为json格式,需对其进行处理

数据准备

(预处理)过程中常常需要进行数据的处理,例如数据清洗包括缺失值和异常值处理,数据变换如规范化数据,数据规约如属性规约(选择部分有代表性的属性)等,在Python有很多进行数据预处理的快速方法,以数据清洗中的缺失值处理为例,在实际过程中常常会发现有的数据是缺失(NaN)的,这些值是需要特别处理的。缺失值的判断可利用numpy中的isnan()函数,而对于Series或DataFrame,缺失值的判断和处理非常的方便,例如df.dropna()可以删掉含NaN(NA)的行,df.dropna(how='all')只丢弃全为NaN的那些行,也可以进行值的插补,例如用0、均值、中位数或众数等进行填充插补,也可用插值法即基于已知点建立插值函数f(x),通过xi求得f(xi)来近似替代,常用方法有拉格朗日插值法和牛顿插值法NaN。以常用的简单填充为例,可用df.fillna(某一个值)方式用某一个值如0或平均值等代替NaN(例如df.fillna(0)表示用0代替NaN),也可用其method参数指定缺失值的填充方向,例如:

  1. >>> fruit_df = pd.Series(['apple', 'orange', 'pear'], index=[0, 2, 5])
  2. >>> fruit_df = fruit_df.reindex(range(7))
  3. >>> fruit_df
  4. 0 apple
  5. 1 NaN
  6. 2 orange
  7. 3 NaN
  8. 4 NaN
  9. 5 pear
  10. 6 NaN
  11. dtype: object
  12. # inplace参数设为True表示直接修改原对象fruit_df,否则将填充后的结果返回,原对象不变
  13. >>> fruit_df.fillna(method='ffill', inplace = True)
  14. >>> print(fruit_df)
  15. 0 apple
  16. 1 apple
  17. 2 orange
  18. 3 orange
  19. 4 orange
  20. 5 pear
  21. 6 pear
  22. dtype: object

ffill表示用前一个非缺失值代替NaN填充,而bfill表示用下一个非缺失数据代替NaN填充,要根据数据的特点选择不同的填充方式,如果选择错误结果可能会不能正确填充,请选择如下填充方式的结果。

  1. >>> import pandas as pd
  2. >>> fruit_df = pd.Series(['apple', 'orange', 'pear'], index=[0, 2, 5])
  3. >>> fruit_df = fruit_df.reindex(range(7))
  4. >>> fruit_df.fillna(method='bfill', inplace = True)
  5. >>> print(fruit_df)
  6. 0 apple
  7. 1 orange
  8. 2 orange
  9. 3 pear
  10. 4 pear
  11. 5 pear
  12. 6 NaN
  13. dtype: object

时间戳timestamp

  1. >>> from datetime import date
  2. >>> firstday = date.fromtimestamp(1464010200)
  3. >>> lastday = date.fromtimestamp(1495200600)#转换为正常日期
  4. >>> firstday
  5. datetime.date(2016, 5, 23)
  6. >>> lastday
  7. datetime.date(2017, 5, 19)
  8. >>> x = date.strftime(firstday,'%Y-%m-%d')#转为固定格式
  9. >>> x
  10. '2016-05-23'
  11. >>> import time
  12. >>> temp=time.strptime('2015-05-31',"%Y-%m-%d")#格式化为time对象
  13. >>> temp
  14. time.struct_time(tm_year=2015, tm_mon=5, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=151, tm_isdst=-1)
  15. >>> type(temp)
  16. <class 'time.struct_time'>

创建时间序列

  1. >>> import pandas as pd
  2. >>> data = pd.date_range('20190228',periods=2)#periods代表生成长度为多少的序列
  3. >>> data
  4. DatetimeIndex(['2019-02-28', '2019-03-01'], dtype='datetime64[ns]', freq='D')

DataFrame的数据显示

  1. >>> import pandas as pd
  2. >>> data = pd.read_csv('city.csv')
  3. >>> data
  4. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  5. 0 AD 安道尔 Andorra 安道爾 欧洲
  6. 1 AE 阿联酋 United Arab Emirates 阿聯 亚洲
  7. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  8. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  9. 4 AI 安圭拉 Anguilla 英屬安圭拉 北美洲
  10. 5 AL 阿尔巴尼亚 Albania 阿爾巴尼亞 欧洲
  11. 6 AM 亚美尼亚 Armenia 亞美尼亞 亚洲
  12. 7 AO 安哥拉 Angola 安哥拉 非洲
  13. 8 AQ 南极洲 Antarctica 南極洲 南极洲
  14. 9 AR 阿根廷 Argentina 阿根廷 南美洲
  15. 10 AS 美属萨摩亚 American Samoa 美屬薩摩亞 大洋洲
  16. 11 AT 奥地利 Austria 奧地利 欧洲
  17. 12 AU 澳大利亚 Australia 澳洲 大洋洲
  18. 13 AW 阿鲁巴 Aruba 阿魯巴 北美洲
  19. 14 AX 奥兰群岛 Åaland Islands 奧蘭群島 欧洲
  20. 15 AZ 阿塞拜疆 Azerbaijan 亞塞拜然 亚洲
  21. 16 BA 波黑 Bosnia and Herzegovina 波赫 欧洲
  22. 17 BB 巴巴多斯 Barbados 巴貝多 北美洲
  23. 18 BD 孟加拉国 Bangladesh 孟加拉 亚洲
  24. 19 BE 比利时 Belgium 比利時 欧洲
  25. 20 BF 布基纳法索 Burkina Faso 布吉納法索 非洲
  26. 21 BG 保加利亚 Bulgaria 保加利亞 欧洲
  27. 22 BH 巴林 Bahrain 巴林 亚洲
  28. 23 BI 布隆迪 Burundi 蒲隆地 非洲
  29. 24 BJ 贝宁 Benin 貝南 非洲
  30. 25 BL 圣巴泰勒米岛 Saint Barthélemy 聖巴瑟米 北美洲
  31. 26 BM 百慕大 Bermuda 百慕達 北美洲
  32. 27 BN 文莱 Brunei Darussalam 汶萊 亚洲
  33. 28 BO 玻利维亚 Bolivia, Plurinational 玻利維亞 南美洲
  34. 29 BQ 荷兰加勒比区 Bonaire, Sint Eustatius and Saba 荷蘭加勒比區 北美洲
  35. .. ... ... ... ... ...
  36. 221 TL 东帝汶 Timor-Leste 東帝汶 大洋洲
  37. 222 TM 土库曼斯坦 Turkmenistan 土庫曼 亚洲
  38. 223 TN 突尼斯 Tunisia 突尼西亞 非洲
  39. 224 TO 汤加 Tonga 東加 大洋洲
  40. 225 TR 土耳其 Turkey 土耳其 亚洲
  41. 226 TT 特立尼达和多巴哥 Trinidad and Tobago 特立尼達和多巴哥 北美洲
  42. 227 TV 图瓦卢 Tuvalu 吐瓦魯 大洋洲
  43. 228 TW 中国台湾 Taiwan, Province of China 中國台灣 亚洲
  44. 229 TZ 坦桑尼亚 Tanzania, United Republic of 坦尚尼亞 非洲
  45. 230 UA 乌克兰 Ukraine 烏克蘭 欧洲
  46. 231 UG 乌干达 Uganda 烏干達 非洲
  47. 232 UM 美国本土���小岛屿 United States Minor Outlying Islands 美國邊疆小島 大洋洲
  48. 233 US 美国 United States 美國 北美洲
  49. 234 UY 乌拉圭 Uruguay 烏拉圭 南美洲
  50. 235 UZ 乌兹别克斯坦 Uzbekistan 烏茲別克 亚洲
  51. 236 VA 梵蒂冈 Holy See (Vatican City State) 梵蒂岡 欧洲
  52. 237 VC 圣文森特和格林纳丁斯 Saint Vincent and the Grenadines 聖文森及格瑞那丁 北美洲
  53. 238 VE 委内瑞拉 Venezuela, Bolivarian Republic of 委內瑞拉 南美洲
  54. 239 VG 英属维尔京群岛 Virgin Islands, U.S. 英屬維爾京群島 北美洲
  55. 240 VI 美属维尔京群岛 United States Virgin Islands 美屬維爾京群島 北美洲
  56. 241 VN 越南 Vietnam 越南 亚洲
  57. 242 VU 瓦努阿图 Vanuatu 萬那杜 大洋洲
  58. 243 WF 瓦利斯和富图纳 Wallis and Futuna 沃里斯與伏塔那島 大洋洲
  59. 244 WS 萨摩亚 Samoa 薩摩亞 大洋洲
  60. 245 XK 科索沃 Kosovo 科索沃 欧洲
  61. 246 YE 也门 Yemen 葉門 亚洲
  62. 247 YT 马约特 Mayotte 美亞特 非洲
  63. 248 ZA 南非 South Africa 南非 非洲
  64. 249 ZM 赞比亚 Zambia 尚比亞 非洲
  65. 250 ZW 津巴布韦 Zimbabwe 辛巴威 非洲
  66. [251 rows x 5 columns]
  67. >>> data.index
  68. RangeIndex(start=0, stop=251, step=1)
  69. >>> list(data.index)
  70. [0, 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, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250]
  71. >>> list(data.columns)
  72. ['Code', '国家和地区名', '国家和地区名(英文)', '国家和地区名(繁体)', '大洲']
  73. >>> data.values
  74. array([['AD', '安道尔', 'Andorra', '安道爾', '欧洲'],
  75. ['AE', '阿联酋', 'United Arab Emirates', '阿聯', '亚洲'],
  76. ['AF', '阿富汗', 'Afghanistan', '阿富汗', '亚洲'],
  77. ...,
  78. ['ZA', '南非', 'South Africa', '南非', '非洲'],
  79. ['ZM', '赞比亚', 'Zambia', '尚比亞', '非洲'],
  80. ['ZW', '津巴布韦', 'Zimbabwe', '辛巴威', '非洲']], dtype=object)
  81. >>> data.describe
  82. <bound method NDFrame.describe of Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  83. 0 AD 安道尔 Andorra 安道爾 欧洲
  84. 1 AE 阿联酋 United Arab Emirates 阿聯 亚洲
  85. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  86. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  87. 4 AI 安圭拉 Anguilla 英屬安圭拉 北美洲
  88. 5 AL 阿尔巴尼亚 Albania 阿爾巴尼亞 欧洲
  89. 6 AM 亚美尼亚 Armenia 亞美尼亞 亚洲
  90. 7 AO 安哥拉 Angola 安哥拉 非洲
  91. 8 AQ 南极洲 Antarctica 南極洲 南极洲
  92. 9 AR 阿根廷 Argentina 阿根廷 南美洲
  93. 10 AS 美属萨摩亚 American Samoa 美屬薩摩亞 大洋洲
  94. 11 AT 奥地利 Austria 奧地利 欧洲
  95. 12 AU 澳大利亚 Australia 澳洲 大洋洲
  96. 13 AW 阿鲁巴 Aruba 阿魯巴 北美洲
  97. 14 AX 奥兰群岛 Åaland Islands 奧蘭群島 欧洲
  98. 15 AZ 阿塞拜疆 Azerbaijan 亞塞拜然 亚洲
  99. 16 BA 波黑 Bosnia and Herzegovina 波赫 欧洲
  100. 17 BB 巴巴多斯 Barbados 巴貝多 北美洲
  101. 18 BD 孟加拉国 Bangladesh 孟加拉 亚洲
  102. 19 BE 比利时 Belgium 比利時 欧洲
  103. 20 BF 布基纳法索 Burkina Faso 布吉納法索 非洲
  104. 21 BG 保加利亚 Bulgaria 保加利亞 欧洲
  105. 22 BH 巴林 Bahrain 巴林 亚洲
  106. 23 BI 布隆迪 Burundi 蒲隆地 非洲
  107. 24 BJ 贝宁 Benin 貝南 非洲
  108. 25 BL 圣巴泰勒米岛 Saint Barthélemy 聖巴瑟米 北美洲
  109. 26 BM 百慕大 Bermuda 百慕達 北美洲
  110. 27 BN 文莱 Brunei Darussalam 汶萊 亚洲
  111. 28 BO 玻利维亚 Bolivia, Plurinational 玻利維亞 南美洲
  112. 29 BQ 荷兰加勒比区 Bonaire, Sint Eustatius and Saba 荷蘭加勒比區 北美洲
  113. .. ... ... ... ... ...
  114. 221 TL 东帝汶 Timor-Leste 東帝汶 大洋洲
  115. 222 TM 土库曼斯坦 Turkmenistan 土庫曼 亚洲
  116. 223 TN 突尼斯 Tunisia 突尼西亞 非洲
  117. 224 TO 汤加 Tonga 東加 大洋洲
  118. 225 TR 土耳其 Turkey 土耳其 亚洲
  119. 226 TT 特立尼达和多巴哥 Trinidad and Tobago 特立尼達和多巴哥 北美洲
  120. 227 TV 图瓦卢 Tuvalu 吐瓦魯 大洋洲
  121. 228 TW 中国台湾 Taiwan, Province of China 中國台灣 亚洲
  122. 229 TZ 坦桑尼亚 Tanzania, United Republic of 坦尚尼亞 非洲
  123. 230 UA 乌克兰 Ukraine 烏克蘭 欧洲
  124. 231 UG 乌干达 Uganda 烏干達 非洲
  125. 232 UM 美国本土外小岛屿 United States Minor Outlying Islands 美國邊疆小島 大洋洲
  126. 233 US 美国 United States 美國 北美洲
  127. 234 UY 乌拉圭 Uruguay 烏拉圭 南美洲
  128. 235 UZ 乌兹别克斯坦 Uzbekistan 烏茲別克 亚洲
  129. 236 VA 梵蒂冈 Holy See (Vatican City State) 梵蒂岡 欧洲
  130. 237 VC 圣文森特和格林纳丁斯 Saint Vincent and the Grenadines 聖文森及格瑞那丁 北美洲
  131. 238 VE 委内瑞拉 Venezuela, Bolivarian Republic of 委內瑞拉 南美洲
  132. 239 VG 英属维尔京群岛 Virgin Islands, U.S. 英屬維爾京群島 北美洲
  133. 240 VI 美属维尔京群岛 United States Virgin Islands 美屬維爾京群島 北美洲
  134. 241 VN 越南 Vietnam 越南 亚洲
  135. 242 VU 瓦努阿图 Vanuatu 萬那杜 大洋洲
  136. 243 WF 瓦利斯和富图纳 Wallis and Futuna 沃里斯與伏塔那島 大洋洲
  137. 244 WS 萨摩亚 Samoa 薩摩亞 大洋洲
  138. 245 XK 科索沃 Kosovo 科索沃 欧洲
  139. 246 YE 也门 Yemen 葉門 亚洲
  140. 247 YT 马约特 Mayotte 美亞特 非洲
  141. 248 ZA 南非 South Africa 南非 非洲
  142. 249 ZM 赞比亚 Zambia 尚比亞 非洲
  143. 250 ZW 津巴布韦 Zimbabwe 辛巴威 非洲
  144. [251 rows x 5 columns]>
  145. >>> data.head(5)#前五列
  146. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  147. 0 AD 安道尔 Andorra 安道爾 欧洲
  148. 1 AE 阿联酋 United Arab Emirates 阿聯 亚洲
  149. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  150. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  151. 4 AI 安圭拉 Anguilla 英屬安圭拉 北美洲
  152. >>> data.tail(5)#后五列
  153. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  154. 246 YE 也门 Yemen 葉門 亚洲
  155. 247 YT 马约特 Mayotte 美亞特 非洲
  156. 248 ZA 南非 South Africa 南非 非洲
  157. 249 ZM 赞比亚 Zambia 尚比亞 非洲
  158. 250 ZW 津巴布韦 Zimbabwe 辛巴威 非洲
  159. >>> data.Code#某一列
  160. 0 AD
  161. 1 AE
  162. 2 AF
  163. 3 AG
  164. 4 AI
  165. 5 AL
  166. 6 AM
  167. 7 AO
  168. 8 AQ
  169. 9 AR
  170. 10 AS
  171. 11 AT
  172. 12 AU
  173. 13 AW
  174. 14 AX
  175. 15 AZ
  176. 16 BA
  177. 17 BB
  178. 18 BD
  179. 19 BE
  180. 20 BF
  181. 21 BG
  182. 22 BH
  183. 23 BI
  184. 24 BJ
  185. 25 BL
  186. 26 BM
  187. 27 BN
  188. 28 BO
  189. 29 BQ
  190. ..
  191. 221 TL
  192. 222 TM
  193. 223 TN
  194. 224 TO
  195. 225 TR
  196. 226 TT
  197. 227 TV
  198. 228 TW
  199. 229 TZ
  200. 230 UA
  201. 231 UG
  202. 232 UM
  203. 233 US
  204. 234 UY
  205. 235 UZ
  206. 236 VA
  207. 237 VC
  208. 238 VE
  209. 239 VG
  210. 240 VI
  211. 241 VN
  212. 242 VU
  213. 243 WF
  214. 244 WS
  215. 245 XK
  216. 246 YE
  217. 247 YT
  218. 248 ZA
  219. 249 ZM
  220. 250 ZW
  221. Name: Code, Length: 251, dtype: object
  222. >>> data.size
  223. 1255
  224. >>> data.shape
  225. (251, 5)
  226. >>> data[2:4]
  227. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  228. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  229. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  230. >>> data[2:4]#类似以索引切片
  231. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  232. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  233. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  234. >>> data.loc[0:5,]#0到5行所有列
  235. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  236. 0 AD 安道尔 Andorra 安道爾 欧洲
  237. 1 AE 阿联酋 United Arab Emirates 阿聯 亚洲
  238. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  239. 3 AG 安提瓜和巴布达 Antigua and Barbuda 安地卡及巴布達 北美洲
  240. 4 AI 安圭拉 Anguilla 英屬安圭拉 北美洲
  241. 5 AL 阿尔巴尼亚 Albania 阿爾巴尼亞 欧洲
  242. >>> data.loc[0:5,['Code','大洲']]0到5行,code列和大洲列
  243. Code 大洲
  244. 0 AD 欧洲
  245. 1 AE 亚洲
  246. 2 AF 亚洲
  247. 3 AG 北美洲
  248. 4 AI 北美洲
  249. 5 AL 欧洲
  250. >>> data.at[1,'大洲']#选择一个值
  251. '亚洲'
  252. >>> data.iloc[1:6,[0,2]]#注意iloc和loc的区别
  253. Code 国家和地区名(英文)
  254. 1 AE United Arab Emirates
  255. 2 AF Afghanistan
  256. 3 AG Antigua and Barbuda
  257. 4 AI Anguilla
  258. 5 AL Albania
  259. >>> data.iloc[1:6,[0,2]]
  260. Code 国家和地区名(英文)
  261. 1 AE United Arab Emirates
  262. 2 AF Afghanistan
  263. 3 AG Antigua and Barbuda
  264. 4 AI Anguilla
  265. 5 AL Albania
  266. >>> data.iloc[1:6,[0,1]]
  267. Code 国家和地区名
  268. 1 AE 阿联酋
  269. 2 AF 阿富汗
  270. 3 AG 安提瓜和巴布达
  271. 4 AI 安圭拉
  272. 5 AL 阿尔巴尼亚
  273. >>> data.iloc[1:6,0:2]
  274. Code 国家和地区名
  275. 1 AE 阿联酋
  276. 2 AF 阿富汗
  277. 3 AG 安提瓜和巴布达
  278. 4 AI 安圭拉
  279. 5 AL 阿尔巴尼亚
  280. >>> data.iat[1,2]
  281. 'United Arab Emirates'
  282. >>> data.ix[(data.index<5)&(data.大洲=='亚洲')]#条件判断
  283. Code 国家和地区名 国家和地区名(英文) 国家和地区名(繁体) 大洲
  284. 1 AE 阿联酋 United Arab Emirates 阿聯 亚洲
  285. 2 AF 阿富汗 Afghanistan 阿富汗 亚洲
  286. >>> data[data.大洲=='亚洲'].Code#条件查找
  287. 1 AE
  288. 2 AF
  289. 6 AM
  290. 15 AZ
  291. 18 BD
  292. 22 BH
  293. 27 BN
  294. 32 BT
  295. 38 CC
  296. 47 CN
  297. 53 CX
  298. 78 GE
  299. 94 HK
  300. 100 ID
  301. 102 IL
  302. 104 IN
  303. 105 IO
  304. 106 IQ
  305. 107 IR
  306. 112 JO
  307. 113 JP
  308. 115 KG
  309. 116 KH
  310. 120 KP
  311. 121 KR
  312. 122 KW
  313. 124 KZ
  314. 125 LA
  315. 126 LB
  316. 129 LK
  317. 145 MM
  318. 146 MN
  319. 147 MO
  320. 154 MV
  321. 157 MY
  322. 165 NK
  323. 168 NP
  324. 172 OM
  325. 177 PH
  326. 178 PK
  327. 183 PS
  328. 187 QA
  329. 193 SA
  330. 198 SG
  331. 212 SY
  332. 218 TH
  333. 219 TJ
  334. 222 TM
  335. 225 TR
  336. 228 TW
  337. 235 UZ
  338. 241 VN
  339. 246 YE
  340. Name: Code, dtype: object
  341. >>>DataFrame.某一列.mean()#求平均值
  342. >>> data['大洲'].value_counts()#计算大洲个数
  343. 非洲 58
  344. 亚洲 53
  345. 欧洲 53
  346. 北美洲 41
  347. 大洋洲 27
  348. 南美洲 14
  349. 南极洲 5
  350. Name: 大洲, dtype: int64
  1. >>> import numpy as np
  2. np.>>> np.sign(5)#大于0返回1,小于0返回-1,等于0返回0
  3. 1
  4. >>> np.sign(-0.25)
  5. -1.0
  6. >>> np.sign(0)
  7. 0
  8. >>> np.array([1,2,3,4,5,6])
  9. array([1, 2, 3, 4, 5, 6])
  10. >>> x = np.array([1,2,3,4,5,6])
  11. >>> np.diff(x)#返回后一元素与前一元素的差值
  12. array([1, 1, 1, 1, 1])
  13. >>> np.where(x>3)#两种调用方式
  14. (array([3, 4, 5]),)
  15. >>> np.where(x>3,1,0)
  16. array([0, 0, 0, 1, 1, 1])
  17. >>> DataFrame.sort_values(by='某一列',ascending=False)#针对某一列进行排序,False逆序True正序

有一个记录了爱吃苏式或广式月饼的用户DataFrame:

  1. >>> mooncakes_df
  2. name gender age taste of mooncake
  3. 0 Liuzi M 21 Cantonese-style
  4. 1 Huangqi F 32 Su-style
  5. 2 Yuanyuan F 35 Su-style
  6. 3 Duyue F 14 Cantonese-style
  7. 4 Zhangtian M 33 Cantonese-style
  8. 若要统计mooncakes_df中分别爱吃两种口味月饼的人数,可利用如下代码实现:
  9. >>> mooncakes_df.groupby("taste of mooncake").age.count()
  10. taste of mooncake
  11. Cantonese-style 3
  12. Su-style 2
  13. Name: age, dtype: int64

可见使用groupby()方法结合一些统计函数在做数据的分组统计时非常有用,另外,值得注意的是,groupby()还常常与apply()函数连用,apply()函数可将数据分拆、应用和汇总,使用自定义函数更灵活地进行各类数据统计。apply()函数的自由度很高,它的最基本形式为“DataFrame.apply(func, axis = 0)”,func是函数,可以自己实现,默认axis为0,表示apply()函数会自动遍历DataFrame的每一列数据(一个Series)按相应函数功能对其进行处理,处理结束后将所有结果组合后返回,若axis设为1则遍历处理DataFrame的每一行数据。例如前面的功能可通过如下代码实现:

  1. def f(df):
  2. return df.age.count()
  3. mooncakes_df.groupby('taste of mooncake').apply(f)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/230174
推荐阅读
相关标签
  

闽ICP备14008679号