pandas数据分析练习记录

举报
建帅小伙儿 发表于 2022/09/25 04:00:53 2022/09/25
【摘要】 pandas数据分析练习 # coding=utf-8""" @Project :pachong-master @File :list_series.py @Author :gaojs @Date :2022/6/5 22:06 @Blogs : https://www.gao...

pandas数据分析练习


   
  1. # coding=utf-8
  2. """
  3. @Project :pachong-master
  4. @File :list_series.py
  5. @Author :gaojs
  6. @Date :2022/6/5 22:06
  7. @Blogs : https://www.gaojs.com.cn
  8. """
  9. import pandas as pd
  10. import numpy as np
  11. class Pandas:
  12. """
  13. pandas类库练习
  14. """
  15. def __init__(self):
  16. pass
  17. def list_series(self):
  18. """
  19. 列表转换成series:索引为数字
  20. :return:
  21. """
  22. course = ["语文", "数学", "英语", "计算机"]
  23. data = pd.Series(data=course)
  24. print(data)
  25. def dict_series(self):
  26. """
  27. 字典转换成series:索引为key值
  28. :return:
  29. """
  30. grades = {"语文": 80, "数学": 90, "英语": 100, "计算机": 95}
  31. data = pd.Series(data=grades)
  32. print(data)
  33. def series_list(self):
  34. """
  35. series转换成list
  36. :return:
  37. """
  38. grades = {"语文": 80, "数学": 90, "英语": 100, "计算机": 95}
  39. data = pd.Series(data=grades)
  40. members = data.to_list()
  41. print(members)
  42. def series_dataframe(self):
  43. """
  44. series转换成dataframe
  45. :return:
  46. """
  47. grades = {"语文": 80, "数学": 90, "英语": 100, "计算机": 95}
  48. data = pd.Series(data=grades)
  49. df = pd.DataFrame(data, columns=['grade'])
  50. print(df)
  51. def numpy_create_series(self):
  52. """
  53. numpy创建series
  54. :return:
  55. """
  56. s = pd.Series(
  57. # 树脂:10-90,间隔10
  58. np.arange(10, 100, 10),
  59. # 索引:101-109,间隔1
  60. index=np.arange(101, 110),
  61. # 类型:float64
  62. dtype='float'
  63. )
  64. print(s)
  65. def series_datatype(self):
  66. """
  67. 数据类型转换
  68. :return:
  69. """
  70. s = pd.Series(
  71. data=["001", "002", "003", "004"],
  72. index=list("abcd")
  73. )
  74. # s = s.astype(int)
  75. # 效果一样,map里的int是函数
  76. s = s.map(int)
  77. print(s)
  78. def series_add_ele(self):
  79. """
  80. 给series添加新元素
  81. :return:
  82. """
  83. grades = {"语文": 80, "数学": 90, "英语": 100, "计算机": 95}
  84. data = pd.Series(data=grades)
  85. data = data.append(pd.Series({
  86. "物理": 99,
  87. "高数": 88
  88. }))
  89. print(data)
  90. def series_to_dataframe(self):
  91. """
  92. series转换成dataframe
  93. :return:
  94. """
  95. grades = {"语文": 80, "数学": 90, "英语": 100, "计算机": 95}
  96. data = pd.Series(data=grades)
  97. df = data.reset_index()
  98. df.columns = ['course', 'grade']
  99. print(df)
  100. def dict_create_dataframe(self):
  101. """
  102. 使用字典创建dataframe
  103. :return:
  104. """
  105. df = pd.DataFrame(
  106. {
  107. "姓名": ["张三", "李四", "王麻子", "高先生"],
  108. "性别": ["男", "女", "男", "女"],
  109. "年龄": [18, 19, 20, 21]
  110. }
  111. )
  112. print(df)
  113. def set_dataframe_index(self):
  114. """
  115. 给dataframe设置索引列
  116. :return:
  117. """
  118. df = pd.DataFrame(
  119. {
  120. "姓名": ["张三", "李四", "王麻子", "高先生"],
  121. "性别": ["男", "女", "男", "女"],
  122. "年龄": [18, 19, 20, 21]
  123. }
  124. )
  125. df.set_index("姓名", inplace=True)
  126. print(df)
  127. def dataMonth(self):
  128. """
  129. 一个月份所有日期
  130. :return:
  131. """
  132. # date_range = pd.date_range(start='2022-05-01', end='2022-05-31')
  133. date_range = pd.date_range(start='2022-05-01', periods=31)
  134. print(date_range)
  135. def mondayDate(self):
  136. """
  137. 一年所有的周一日期
  138. :return:
  139. """
  140. # data_range = pd.date_range(start='2022-01-01', end='2022-12-31', freq='W-Mon')
  141. data_range = pd.date_range(start='2022-01-01', periods=52, freq='W-Mon')
  142. print(data_range)
  143. def dayHourDate(self):
  144. """
  145. 一日所有的小时
  146. :return:
  147. """
  148. # data_range = pd.date_range(start='2022-01-01', periods=24, freq='H')
  149. data_range = pd.date_range(start='2022-01-01', end='2022-01-02', freq='H', closed='left')
  150. print(data_range)
  151. def dateToDataframe(self):
  152. """
  153. 日期生成DataFrame
  154. :return:
  155. """
  156. data_range = pd.date_range(start='2022-5-01', periods=31, freq='D')
  157. # print(data_range)
  158. df = pd.DataFrame(data=data_range, columns=['day'])
  159. df['day_of_year'] = df['day'].dt.dayofyear
  160. print(df)
  161. def dateToRandomDataFrame(self):
  162. """
  163. 日期随机生成dataframe:均匀 正态 二项分布
  164. :return:
  165. """
  166. data_range = pd.date_range(start='2022-1-01', periods=1000, freq='D')
  167. data = {
  168. 'norm': np.random.normal(loc=0, scale=1, size=1000),
  169. 'unifom': np.random.uniform(low=0, high=1, size=1000),
  170. 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
  171. }
  172. df = pd.DataFrame(data=data, index=data_range)
  173. print(df)
  174. def logHeadLine(self):
  175. """
  176. 打印前10行
  177. :return:
  178. """
  179. data_range = pd.date_range(start='2022-1-01', periods=1000, freq='D')
  180. data = {
  181. 'norm': np.random.normal(loc=0, scale=1, size=1000),
  182. 'unifom': np.random.uniform(low=0, high=1, size=1000),
  183. 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
  184. }
  185. df = pd.DataFrame(data=data, index=data_range)
  186. print(df.head(10))
  187. print(df.tail(5))
  188. def catDataFrame(self):
  189. """
  190. 查看dataframe基本信息
  191. :return:
  192. """
  193. data_range = pd.date_range(start='2022-1-01', periods=1000, freq='D')
  194. data = {
  195. 'norm': np.random.normal(loc=0, scale=1, size=1000),
  196. 'unifom': np.random.uniform(low=0, high=1, size=1000),
  197. 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
  198. }
  199. df = pd.DataFrame(data=data, index=data_range)
  200. print(df.info())
  201. print(df.describe())
  202. def countDataAppear(self):
  203. """
  204. 统计数据出现次数
  205. :return:
  206. """
  207. data_range = pd.date_range(start='2022-1-01', periods=1000, freq='D')
  208. data = {
  209. 'norm': np.random.normal(loc=0, scale=1, size=1000),
  210. 'unifom': np.random.uniform(low=0, high=1, size=1000),
  211. 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
  212. }
  213. df = pd.DataFrame(data=data, index=data_range)
  214. print(df['binomial'].value_counts())
  215. def saveCSV(self):
  216. """
  217. 保存前一百行存入csv
  218. :return:
  219. """
  220. data_range = pd.date_range(start='2022-1-01', periods=1000, freq='D')
  221. data = {
  222. 'norm': np.random.normal(loc=0, scale=1, size=1000),
  223. 'unifom': np.random.uniform(low=0, high=1, size=1000),
  224. 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
  225. }
  226. df = pd.DataFrame(data=data, index=data_range)
  227. df.head(10).to_csv('分布数据前50.csv')
  228. def csvLoadDataframe(self):
  229. """
  230. csv加载成dataframe
  231. :return:
  232. """
  233. df = pd.read_csv('分布数据前50.csv', index_col=0)
  234. print(df.info())
  235. print(df.head())
  236. # test = Pandas()
  237. # test.csvLoadDataframe()

未完待续

文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41332844/article/details/126837419

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。