目录
strftime('%y-%m-%d')与dt.date 时间
计算百分比变化
pandas
库中的 .pct_change()
方法用于计算数据序列中相邻元素之间的百分比变化。它对于分析时间序列数据、金融数据等非常有用,可以用来计算增长率、收益率等指标。
.pct_change()
方法默认计算每个元素与其前一个元素之间的百分比变化。公式如下:
Percentage Change=(Current Value−Previous Value) / Previous Value
如果 Previous Value
为零或缺失(NaN),则结果将为 NaN。
df['pct_change'] = df['value'].pct_change()
.pct_change()
方法有多个参数,可以根据需要进行调整:
-
periods
:指定用于计算百分比变化的滞后期数。默认值为 1,表示计算当前值与前一个值之间的变化。 -
fill_method
:指定如何处理缺失值(NaN)。默认值为'pad'
,即使用前向填充方法。 -
limit
:指定在前向填充时的最大填充次数。仅当fill_method='pad'
或ffill
时有效。 -
freq
:指定重采样频率,适用于时间序列数据。
自然排序函数natsort
将1、10、2、33、4 排序为 1、2、4、10、33
import natsort as ns
ns.natsorted(num_list,reverse=True)
data.sort_values(day_cut,key=lambda val:np.argsort(index_natsorted(val)))
累积函数
cumsum、cumprod、cummax、cummin
计算序列中前n个数的累积 和、乘积、最大值、最小值
Isinstance查看一个对象是否是指定类的实例
if isinstance(num, int):
return int(num)
dropna 过滤NaN函数
对于dataframe:
df.drop() | 会丢弃掉 至少有一个NaN的行 |
df.drop(how='all') | 会丢弃掉 全部为NaN的行 |
df.dropna(axis=1,how='all') | 会丢弃掉 全部为NaN的列 |
df.dropna(axis=0,subset = [1]) | 会丢弃掉 "1"列中 有NaN的行 |
\
对于Series:默认丢弃含有缺失值的行。
%timeit 计时,查看语句运行时间
%timeit 运行语句
执行多次,取平均性能
Shuffle 把数据随机打散
Shuffle(df)
drop_duplicates去重详解
根据数据的不同情况及处理数据的不同需求,通常会分为两种情况,一种是去除完全重复的行数据,另一种是去除某几列重复的行数据,就这两种情况可用下面的代码进行处理。
1. 去除完全重复的行数据
data.drop_duplicates(inplace=True) (不需要重新赋值)
2. 去除某几列重复的行数据
data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
subset: 列名,可选,默认为None
keep: {‘first’, ‘last’, False}, 默认值 ‘first’
- first: 保留第一次出现的重复行,删除后面的重复行。
- last: 删除重复项,除了最后一次出现。
- False: 删除所有重复项。
inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。(inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。)
.values.tolist() 数组转列表
strftime('%y-%m-%d')与dt.date 时间
strftime(’%y-%m-%d’)、dt.date都可以将2020-02-02 14:01:01转化为2020-02-02,但如果有Nan值strftime(’%y-%m-%d’)将报错,dt.date不会报错。