携手创作,共同成长!这是我参与「掘金日新计划 · 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进行比较,输出的结果如下:
数据分析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)
输出的结果如下:
对serise对象进行分析学习:
print(ser_obj.values)
print(ser_obj.keys())
print(type(ser_obj.values))
print(ser_obj.index)
输出的结果如下:
index为内部自带的数值。
读出一个值:
print(ser_obj[0])
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)
输出的结果为:
print(ser_obj2.index)
print(ser_obj2[2001])
ser_obj2.values
对应的结果如下:
打印索引的名字:
print(ser_obj2.name)
此时索引的名字为none
我们可以对名字进行修改:
ser_obj2.name = 'temp'
ser_obj2.index.name = 'year1'
此可再次输出:
print(ser_obj2.head(2))
语句默认显示前5行,同样自己可以指定显示的行数:
明天开始学习DataFrame对象