knowmore0 2020-03-08
import pandas as pd
# 获取唯一值
ser01=pd.Series([‘a‘,‘c‘,‘b‘,‘d‘,‘a‘,‘b‘])
print(ser01.unique()) #输出为 [‘a‘ ‘c‘ ‘b‘ ‘d‘]
# 值计数
print(ser01.value_counts())
‘‘‘
输出为 a 2
b 2
d 1
c 1
dtype: int64
‘‘‘
print(ser01.value_counts(ascending=False)) # 按照频率的高到低排序(默认)
‘‘‘
输出为 a 2
b 2
d 1
c 1
dtype: int64
‘‘‘
print(ser01.value_counts(ascending=True)) # 按照频率的低到高排序
‘‘‘
输出为 c 1
d 1
b 2
a 2
dtype: int64
‘‘‘
# 成员资格
print(ser01.isin([‘b‘,‘c‘]))
‘‘‘
输出为 0 False
1 True
2 True
3 False
4 False
5 True
dtype: bool
‘‘‘
print(ser01[ser01.isin([‘b‘,‘c‘])])
‘‘‘
输出为 1 c
2 b
5 b
dtype: object
‘‘‘import pandas as pd
#Series层次索引
ser02=pd.Series([12034,12222,33333,55555],index=[[‘2001‘,‘2001‘,‘2001‘,‘2002‘],[‘苹果‘,‘香蕉‘,‘西瓜‘,‘苹果‘]])
print(ser02)
‘‘‘
输出为 2001 苹果 12034
香蕉 12222
西瓜 33333
2002 苹果 55555
dtype: int64
‘‘‘
#DataFrame层次索引
df02=pd.DataFrame({
‘year‘:[2001,2001,2001,2002],
‘fruit‘:[‘苹果‘,‘香蕉‘,‘西瓜‘,‘苹果‘],
‘production‘:[12034,12222,33333,55555]
})
print(df02)
‘‘‘
输出为 year fruit production
0 2001 苹果 12034
1 2001 香蕉 12222
2 2001 西瓜 33333
3 2002 苹果 55555
‘‘‘
df02=df02.set_index([‘year‘,‘fruit‘]) #层次化索引,设置为索引,series与DataFrame转化
print(df02)
‘‘‘
输出为 year fruit production
2001 苹果 12034
香蕉 12222
西瓜 33333
2002 苹果 55555
‘‘‘
print(df02.loc[2001,‘苹果‘]) #根据索引获取值
‘‘‘
输出为 production 12034
Name: (2001, 苹果), dtype: int64
‘‘‘
print(df02.sum(level=‘year‘))
‘‘‘
输出为 year production
2001 57589
2002 55555
‘‘‘
print(df02.mean(level=‘fruit‘))
‘‘‘
输出为 fruit production
苹果 33794.5
香蕉 12222.0
西瓜 33333.0
‘‘‘
print(df02.max(level=[‘year‘,‘fruit‘]))
‘‘‘
输出为 year fruit production
2001 苹果 12034
香蕉 12222
西瓜 33333
2002 苹果 55555
‘‘‘ 计算的时候总共分3步,1到2是第二组......lower: i. 这组数据中的小值 higher: j. 这组数据中的大值,fraction 是第三步中的小数部分,意思是当前这组数据的0到1的分位数
Series是一种类似于一维数组的对象,由一组数据以及一组与之对应的索引组成。 index: 索引序列,必须是唯一的,且与数据的长度相同. 如果没有传入索引参数,则默认会自动创建一个从0~N的整数索引