#pandas基础学习
import pandas as pd
import numpy as np
s1 = pd.Series([4, 7, 9, 11]) #创建一个series,索引为默认值,注意首字母大写
print(s1)
print(s1.values) #输出series值
print(s1.index) #输出索引
s2 = pd.Series([4, 5.2, 6.8, 3], index=[‘w’, ‘e’, ‘f’, ‘m’]) #可以给s2指定索引值
print(s2)
print(s2[[‘w’]]) #按照索引值单独输出
print(s2[[‘w’, ‘e’, ‘m’]]) #按照索引值输出多个数据
j = ‘w’ in s2 #可以判断series中是否有确定的值
print(j)
i = ‘a’ in s2
print(i)
#series 可以看成一个定长的有序字典
dic1 = {‘apple’: 5, ‘pen’: 10, ‘pencil’: 2}
s3 = pd.Series(dic1)
print(s3)
#学习二维表结构 DataFrame
data = {‘year’: [2017, 2018, 2019, 2020],
‘income’: [1000, 2000, 3000, 4000],
‘pay’: [200, 300, 400, 500]
}
df1 = pd.DataFrame(data) #这样会构建一个二维表格,输出相应的表格信息
print(df1)
#第二种构建表格的方法
df2 = pd.DataFrame(np.arange(12).reshape(3, 4)) #构成三行四列的表格
print(df2)
#使用我们自己设定的表头和序列
df3 = pd.DataFrame(np.arange(12).reshape(3, 4), index=[‘1’, ‘8’, ‘0’], columns=[‘a’, ‘b’, ‘d’, ‘c’])
print(df3) #index 设置行,columns设置列
#调用行或者列或者表格中的值
print(df3.columns)
print(df1.index)
print(df3.values)
#对表格中值进行表述
print(df1.describe())#最大最小值、平均值、方差等
#表格倒置
print(df1.T)
#表格行排序
print(df3.sort_index(axis=0))
#表格列排序
print(df3.sort_index(axis=1)) #行排序和列排序对于数字和字母都能排序
#表哥中的某一行或者某一列进行排序
print(df3.sort_values(by=‘a’))
##pandas 选择数据
import pandas as pd
import numpy as np
dates = pd.date_range(‘20200221’, periods=6)
df1 = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=[‘a’, ‘b’, ‘c’, ‘d’])
print(df1) #构成一个从20200221开始六天数据为行表头,列为abcd的二维表
print(df1[‘a’]) #打印a列数据,获取为一个series
print(df1.a) #打印a列数据,获取为一个series的另一种方式
print(df1[0:2]) #获取第0-1行
print(df1[‘20200221’:‘20200222’]) #获取第0-1行的另一种方式
#通过标签选择数据
print(df1.loc[‘20200221’]) #会提取出全部相应的行表头和对应列表的数据
print(df1.loc[‘20200221’, [‘a’, ‘c’]]) #会提取出部分对应的行表头和对应列表的数据
print(df1.loc[:, [‘a’, ‘b’]]) #提取出所有行,仅ab两列的对应数据
#通过位置选择数据
print(df1.iloc[2]) #输出第二行的数据
print(df1.iloc[1:3, 2:4]) #输出第一到二行中3-4列的数据
print(df1.iloc[[1, 2, 4], [1, 3]]) #提取出不连续的行和列
#混合标签位置选择
print(df1.ix[2:4, [‘a’, ‘b’]]) #这里会报出警告,因为.ix即将过期,功能可以被.loc和.iloc代替
print(df1.a > 6) #可以判断某一行或者某一列是否大于等于(符合筛选的条件)
print(df1 > 7) #或者判断列表的全部数据是否满足某一条件