目录
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不会报错。
本文介绍了Python中几个常用的数据处理和分析函数,包括自然排序函数natsort、累积函数如cumsum,以及如何使用isinstance检查对象类型。还讨论了如何利用dropna过滤NaN,使用%timeit测量代码执行时间,以及数据打乱和去重的方法。对于时间处理,提到了strftime和dt.date在处理时间数据时的区别。这些技巧对于提升数据处理效率非常有帮助。
926

被折叠的 条评论
为什么被折叠?



