函数下午茶(6):Pandas-最后四个函数

函数下午茶(6):Pandas-最后四个函数

1. DataFrame.pct_change()函数

介绍

DataFrame.pct_change(periods=1, fill_method='pad', limit=None, freq=None, **kwargs)

当前元素和先前元素之间的百分⽐变化。默认情况下,计算与前⼀⾏相⽐的百分⽐变化。这在⽐较元素时间序列的变化百分⽐时很有⽤。

参数说明

参数介绍
periods整型,默认为1,⽤于形成百分⽐转换周期
fill_method字符型,默认’pad’。NA处理⽅法选择
limit整型。处理NA的数量
freq时间序列API使⽤增量(e.g. ‘M’ or BDay())

举例

1 #⽣成数据源
2 df = pd.DataFrame({ 
3 'FR': [4.0405, 4.0963, 4.3149], 
4 'GR': [1.7246, 1.7482, 1.8519], 
5 'IT': [804.74, 810.01, 860.13]}, 
6 index=['1980-01-01', '1980-02-01', '1980-03-01']) 
7 df 
8 >> FR GR IT 
9 1980-01-01 4.0405 1.7246 804.74 
10 1980-02-01 4.0963 1.7482 810.01 
11 1980-03-01 4.3149 1.8519 860.13 
12 #计算各列随着时间变化的百分⽐,添加axis=’columns’参数可以计算横向百分⽐ 
13 df.pct_change() 
14 >> FR GR IT 
15 1980-01-01 NaN NaN NaN 
16 1980-02-01 0.013810 0.013684 0.006549 
17 . 1980-03-01 0.053365 0.059318 0.061876 

2. Pandas.date_range()函数

介绍

返回固定频率的⽇期时间索引

pandas.date_range(start=None,end=None,periods=None,freq=None,tz=None, normalize=False,
name=None, closed=None, **kwargs)

参数说明

参数介绍
start字符型,datetime-like数据。⽇期开始
end字符型,datetime-like数据。⽇期结束
periods整数型,⽣成周期数
freq字符型,默认’D’。频率串可以拥有倍数
tz字符型,返回本地时区,例’Asia/Hong_Kong.’
normalizeBool,规范化时间
name字符型,时间索引名称
closed{None, ‘left’, ‘right’},闭合区间选择

举例

1 #⽣成⼀个具有5个时间段,时⻓间隔3个⽉的时间序列
2 pd.date_range(start='1/1/2018', periods=5, freq='3M') 
3 DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31', 
4 '2019-01-31'], 
5 dtype='datetime64[ns]', freq='3M') 
6 #⽣成⼀个具有5个时间段,时⻓间隔为1天的亚洲\东京时区时间序列 
7 pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo') 
8 >> DatetimeIndex(['2018-01-01 00:00:00+09:00', '2018-01-02 00:00:00+09:00', 
9 '2018-01-03 00:00:00+09:00', '2018-01-04 00:00:00+09:00', 
10 '2018-01-05 00:00:00+09:00'], 
11 dtype='datetime64[ns, Asia/Tokyo]', freq='D') 

关于时间的处理在数据分析中经常遇到,合理的使⽤时间转换能够减少统计⼯作量,关于时间序列的处
理,更详细请参考官⽅教
程:点这儿

3. DataFrame.sort_values()函数

介绍

沿着轴对数值进⾏排序

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort',
na_position='last', ignore_index=False, key=None)

参数说明

参数介绍
by按照某⼀个标签索引排序
axis{0,1},默认0,排序轴向
ascending默认True,升序排序。
Inplace默认False,不替换原数据
kind字符型,排序⽅式。quicksort’, ‘mergesort’, ‘heapsort’三种⽅式
na_position{‘first’,’last’},NaN放置位置。
ignore_index默认False,不对索引进⾏重新排序。

举例

#⽣成数据源
df = pd.DataFrame({ 
 'col1': ['A', 'A', 'B', np.nan, 'D', 'C'], 
 'col2': [2, 1, 9, 8, 7, 4], 
 'col3': [0, 1, 9, 4, 2, 3], 
 'col4': ['a', 'B', 'c', 'D', 'e', 'F'] }) 
df 
>> col1 col2 col3 col4 
0 A 2 0 a 
1 A 1 1 B 
2 B 9 9 c 
3 NaN 8 4 D 
4 D 7 2 e 
5 C 4 3 F 
#对数据按col1列的降序排列,nan值放置在头部 
df.sort_values(by='col1', ascending=False, na_position='first') 
>> col1 col2 col3 col4 
3 NaN 8 4 D 
4 D 7 2 e 
5 C 4 3 F 
2 B 9 9 c 
0 A 2 0 a 
1 A 1 1 B

4. DataFrame.apply()函数

介绍

沿着数据的轴应⽤函数,返回使⽤函数后的值。

DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)

参数说明

参数介绍
func函数,每列或⾏使⽤的函数
axis默认0,沿着列使⽤函数
raw默认False,确定⾏或者列是作为序列还是数组对象传递的。
result_type{‘expand’,’reduce’,’broadcast’,None},默认None,结果返回⽅式。
args除了数组序列外,要传递给func的位置参数

举例

 #⽣成⼀个数据源
 df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
 df
 >>	A	B
  0	4	9
  1	4	9
  2	4	9
 #对每列数据求和
 df.apply(np.sum, axis=0)
  >> A	12
  B	27
 dtype: int64
 # 将每⼀⾏数据编程匿名函数lambda的返回值
 df.apply(lambda x: [1, 2], axis=1)
  >> 0	[1, 2]
  . 1	[1, 2]
  2	[1, 2]
  dtype: object

apply是数据处理过程重要的函数,可以⾃定义不同的数据处理函数。
更多其他的⽤法参考官⽅⽂档:点这儿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值