记录从准研一假期自学PYTHON的全过程day31

85 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情

也是暑假自学python的第31天

今天继续昨天的学习:

numpy打开文件,对文件中的数据进行绘制:

import numpy as np
import matplotlib.pyplot as plt
us_file_path = "./youtube_video_data/US_video_data_numbers.csv"
uk_file_path = "./youtube_video_data/GB_video_data_numbers.csv"


t_uk = np.loadtxt(uk_file_path,delimiter=",",dtype="int")

#选择喜欢数比50万小的数据
t_uk = t_uk[t_uk[:,1]<=500000]
t_uk_like=t_uk[:,1]
t_uk_comment=t_uk[:,-1]
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(t_uk_like,t_uk_comment)
plt.show()

对每一列的数据进行分析,将每一列的数据与50000进行比较,输出的结果如下:

image.png

数据分析pandas

我已经在前面的学习中学习了matplotlib和numpy,他们都是数据分析工具,但是numpy只能帮助处理数值,而有很多数据是numpy处理不了的,比如字符串,时间序列等,pandas可以帮助我们处理其他类型的数据。

pandas支持的数据类型:

int,float,bool,category,object(字符串)等

pandas的数据结构serise

pandas有两个最重要的数据结构,一个是series,另一个是DataFrame。

series类似于一种一维数组对象,由一组数据以及一组与之对应的索引组成,索引在左,数据在右边。

index——element

其中索引值不一定是数字,也可以是其他的字母或单词。

生成一个serise对象:

import pandas as pd
ser_obj=pd.Series(range(10,20))
print(ser_obj)

输出的结果如下:

image.png

对serise对象进行分析学习:

print(ser_obj.values)
print(ser_obj.keys())
print(type(ser_obj.values))
print(ser_obj.index)

输出的结果如下:

image.png

index为内部自带的数值。

读出一个值:

print(ser_obj[0])

image.png

series看样子的值与字典的类型相似,但是与字典有一个根本上的不同点为:字典的key值为不可变数据类型。而series的key则是可变的。

所以就要学习将字典变为series:

使用到的语句为:

ser_obj2 = pd.Series(year_data)

具体的举例如下:

year_data = {2001: 17.8, 2005: 20.1, 2003: 16.5}
print(type(year_data))
ser_obj2 = pd.Series(year_data)
type(ser_obj2)

输出的结果为:

image.png

print(ser_obj2.index)
print(ser_obj2[2001])
ser_obj2.values

对应的结果如下:

image.png

打印索引的名字:

print(ser_obj2.name)

此时索引的名字为none

image.png 我们可以对名字进行修改:

ser_obj2.name = 'temp'
ser_obj2.index.name = 'year1'

此可再次输出:

image.png

print(ser_obj2.head(2))

语句默认显示前5行,同样自己可以指定显示的行数:

image.png

明天开始学习DataFrame对象