1.pandas核心数据结构
"""
Series可以理解为一个一维的数组,只是index名称可以自己改动。
类似于定长的有序字典,有Index和 value
"""
import numpy as np
import pandas as pd
data = np.array(['a', 'b', 'c', 'd'])
s = pd.Series(data)
print(s)
s = pd.Series(data, index=[100, 101, 102, 103])
print(s)
# 字典创建
data = {'a': 0, 'b': 2, 'c': 4}
s = pd.Series(data)
print(s)
s = pd.Series(5, index=[1, 2, 3, 4, 5])
print(s)
# 列表创建
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
# 索引
print(s[0])
print(s[1:])
# 标签
print(s['a'])
print(s[['a', 'c', 'd']])
# 日期
dates = pd.Series(['2011', '2011-02', '2011-03-01', '2011/04/01',
'2011/05/01 01:01:01', '01 Jun 2011'])
dates = pd.to_datetime(dates)
print(dates, dates.dtype, '---', type(dates))
# 获取年
print(dates.dt.year)
# 日期操作
delta = dates - pd.to_datetime('1907-01-03')
print(delta)
# 计算天数
print(delta.dt.days)
"""
通过指定周期和频率,使用`date.range()`函数就可以创建日期序列
"""
# 以日为周期
date_list = pd.date_range('2019-12-1', periods=5)
print(date_list)
# 工作日
date_list = pd.bdate_range('2019-12-01', periods=10)
print(date_list)
# 以月为周期,设置为月末
date_list = pd.date_range('2019-08-01', periods=4, freq='M')
print(date_list)
"""
DataFrame是一个类似于表格的数据类型,可以理解为一个二维数组,
索引有两个维度,可更改
"""
# 列表
data = [1, 2, 3, 4]
df = pd.DataFrame(data)
print(df)
data = [['cay', 99], ['qwe', 90]]
df = pd.DataFrame(data, columns=['name', 'score'])
print(df)
# print(df['score'])
data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 6, 'c': 7}]
df = pd.DataFrame(data)
print(df)
"""
a b c
0 1 2 NaN
1 5 6 7.0
"""
# 字典
data = {'name': ['cay', 'qwe', 'asd'], 'age': [15, 23, 42]}
df = pd.DataFrame(data)
print(df)
print(df[:1]) # 访问行
print(df['name']) # 访问列
df['score'] = pd.Series([90, 78, 87]) # 增加列
del df['age'] # 删除列,df.pop('age')
de