首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据处理 | 在学这几个pandas函数,继续加快你数据处理的速度

Dataframe新增数据列 新增数据列其实是很常见的操作,一般情况下我们可以采用直接赋值法,也就是在原来的Dataframe数据上进行直接操作,比如: >>> import pandas as pd...','f2'] >>> df temp_c temp_f Portland 17.0 f1 Berkeley 25.0 f2 # 直接赋值法,修改已有列数据...Berkeley 200 f2 直接赋值 上述这种情况,一般我们可以通过df1=df.copy()解决(深拷贝和浅拷贝的差异),具体这里不展开。...200 f2 1.1. assign() 这个时候,我们就要介绍assign()方法了,它并不是在原来的Dataframe上进行操作,而是返回一个含原来Dataframe全部数据和新增列的Dataframe...当然了,eval()还支持通过 @ 符号使用 Python 的局部变量 ,@ 符号表示“这是一个变量名称而不是一个列名”,从而让你灵活地用两个“命名空间”的资源(列名的命名空间和 Python 对象的命名空间

1.3K30

因子评估——双重排序

双重排序可以评估两个因子叠加使用是否会优于单个因子,即分析两个因子的信息重叠程度以及否有信息增益。 双重排序法的原理与Fama-French三因子的SMB和HML构造方法一致。...首先对这两个因子做单因子测试,用到的函数如下 import os os.chdir('E:\\quant\\doublesort\\') import numpy as np import pandas...接下来对这两个因子进行双重排序,生成5x5的投资组合。首先做独立排序,统计每个分组的股票占比如下,横轴为市净率分组,纵轴为市值分组,1-5因子值逐渐增大。 ?...从结果来看,各组的股票数占比差异不大,表明两个因子相关性不高。计算这25个投资组合的净值曲线结果如下 ? 不是非常容易观察, 计算每个投资组合的平均月度收益率,做5x5的热力图如下 ?...代码如下 # 先按f1分组,再按f2分组 doublesorts f1 = 'mktcap' f2 = 'pb' f = fall[['tradedate','stockcode',f1,f2]

5.9K94
您找到你想要的搜索结果了吗?
是的
没有找到

pandas作者当年遇到了什么麻烦,才设计出如此糟糕的警告机制

为什么我不把文章发布在 pandas 专栏?...因为本文涉及的是 python 的非初级知识点 ---- 从零开始 假设我们是 pandas 的作者,现在要设计数据表(DataFrame)的定义: 名字叫 MyFrame 初始化的时候需要传入字典数据...但 python 是不可能如下定义函数名字的: 行17:这违反了 python 定义函数名字的规则 python 的作者心想,既然特殊符号不行,那就用比较不常用又合法的函数名字代替吧。...注意,这一步执行的操作,不是作用在 f1 对象上 如果代码换一种写法,就很容易理解: 行5:f2 就是之前说的"新对象" 行7:更新的是 f2f2 也确实被更新。...首先,在对象初始化的时候,给一个标志属性: 行11:标记一个对象是否为影子对象,就类似之前例子f2 在 __getitem__ ,返回全新对象之前,修改新对象的 _shadow 属性: 行36

31220

python之pandas简单介绍及使用(一)「建议收藏」

二者与Python基本的数据结构List也很相近,其区别是:List的元素可以是不同的数据类型,而Array和Series则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。...二、 Pandas安装 因为pandas是python的第三方库所以使用前需要安装一下,直接使用pip install pandas 就会自动安装pandas以及相关组件。...三、  Pandas使用 注:本次操作是在ipython中进行 1、导入pandas模块并使用别名,以及导入Series模块,以下使用基于本次导入。...’],”marks”:[100,200,300],”price”:[1,2,3]} In [28]: f1 = DataFrame(data) In [29]: f1 Out[29]:   marks...]: f2 = DataFrame(data,columns=[‘name’,’price’,’marks’]) In [32]: f2 Out[32]:   name    price    marks

1.6K30

Python cProfile 输出解析及其解决方案

cProfile 是 Python 中用于性能分析的内置模块,它可以帮助你确定程序哪些部分消耗了最多的时间。通常,使用 cProfile 会输出大量的数据,需要进行解析和分析。...一种方法是使用 Pandas 库来读取 CSV 文件,因为 Pandas 可以一次性将整个文件读入内存,然后进行快速的数据处理。另一种方法是使用多线程或多进程来并行处理数据,从而提高效率。...代码例子import pandas as pd​def db_insert_optimized(coCode, bse): # 使用 Pandas 读取 CSV 文件 df = pd.read_csv...Pandas 库来读取 CSV 文件,并将数据转换成一个字典,然后将字典插入到数据库。...总体来说,使用 cProfile 进行性能分析后,可以使用 pstats 模块提供的各种方法来解析和分析输出结果,从而找出程序的性能瓶颈并进行优化。

12810

Pandas实用手册(PART III)

不过你时常会想要把样本(row)里头的多个栏位一次取出做运算并产生一个新的值,这时你可以自定义一个Python function并将apply函数套用到整个DataFrame之上: 此例apply函数将...: 找出栏位里所有出现过的值 针对特定栏位使用unique函数即可: 分组汇总结果 很多时候你会想要把DataFrame里头的样本依照某些特性分门别类,并依此汇总各组(group)的统计数据。...有时候你会想直接把各组汇总的结果放到原本的DataFrame里头,方便比较原始样本与汇总结果的差异。...(style),并将喜欢的样式通过plt.style.use()套用到所有DataFrame的plot函数: 与pandas相得益彰的实用工具 前面几个章节介绍了不少pandas使用技巧与操作概念,这节则介绍一些我认为十分适合与...pip install swifter 接着让我建立一个有100万样本的dataframe,测试swift与原版apply函数的效果差异: 在这个简单的平方运算,swifter版的appy函数在colab

1.8K20

解决python 执行sql语句时所传参数含有单引号的问题

于是考虑了一下,可以让sql语句在读取到单引号时,知道这是字符串文本的单引号,所以可以将参数单引号替换为 \’ ,这样或许可以顺利语句如下: result2 = result2.replace(“‘...”,”\\'”) #将result2的 ‘ 替换为 \’ PS: 这里请务必看清双引号以及反斜杠的使用:) 经过测试,问题得到了顺利解决。...通过下面步骤转化为一条sql语句,当然也做了反向操作 for i in range(3): locals()[‘f’+str(i)]=[] import pandas as pd import...numpy as np a = pd.DataFrame({"A":[" =",5], "B":["<",6], "C":["in",'("ha","he")'], "D"...,f2) g = pd.DataFrame(columns=f0,data=[f1,f2]) print(g) 以上这篇解决python 执行sql语句时所传参数含有单引号的问题就是小编分享给大家的全部内容了

2.3K10

Linux命令使用:diff、patch与dirname

,分析其表示含义: 1c1 三个字段分别表示 f1 文件第一行发生修改,修改类型为 change,f2 文件第一行发生修改 < a 表示f1文件第一行的修改内容为 a --- 作用为分隔符,分割两个文件的修改内容显示...> d 表示f2文件第一行的修改内容为 d 由分析可知,这种直接的比较结果较为不直观,后续增加了两种比较模式,能够更清晰的展示文件的差异点。...@@ -a b c +d ---和+++分别表示f1f2文件,@@括起来的内容,-1,3表示f1文件第一行有删除操作,显示文件一到三行的内容,+1,3表示f2文件第一行有增加操作,显示文件一到三行的内容...diff命令的修改结果可以展示在命令窗口中,帮助查看文件的差异,也可以作为补丁(patch)文件存储起来,方便后续查看,也可以将生成的补丁文件应用到具体文件,该行为多发生于版本控制系统。...因为对补丁的应用,可能存在目录等级调整的情况,所以在使用diff命令生成补丁文件时,尽量不使用绝对目录指定进行比较的文件。

2.3K20

递归算法

可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程,却不知道怎么使用。今天,我们就来说一说递归算法的使用。 什么是递归 递归,在数学与计算机科学,是指在函数的定义中使用函数自身的方法。...下面,我们通过两个例子来学习一下,递归的使用: 例一:递归求阶乘 图片 例二:递归求斐波那契数列 图片 从上面的步骤我们可以清晰的看到递归算法的第一步是分治,把复杂的大的问题,给拆分成一个一个小问题,直到不能再拆解...,f2;              /*定义f1f2为长整形*/ int i;                       /*定义整型变量i*/ f1=1;f2=1;                  .../*给f1f2赋初值为1*/ for(i=1;i<=20;i++) { printf("%12ld\n%12ld\n",f1,f2);      /*输出斐波那契数列*/ f1=f1+f2;               .../*数列从第3项开始每一项等于前两项之和*/ f2=f2+f1; } }

56421

python数据分析专用数据库,与pandas结合,10倍提速+极致体验

可以无缝接入 pandas ,做到了性能与使用体验同时提升。 这就是今天的主角,duckdb。 特点 duckdb 是一个单机数据库,你大概率会用它与 sqlite 比较。...并且,这个过程,duckdb比 pandas 更快处理数据(多线程),并且内存使用量也比 pandas 要低得多。...特别在一些需要分组的数据处理任务上,就算只使用单线程的 duckdb 也会比 pandas 的快两倍。如果是过滤+分组+列投影,会存在 5-8倍 的差异。...如果加上表连接,则可能会到 15倍 的差异。 如果使用其他的一些 pandas 使用 sql 的库,比如 pandasSql ,它比 duckdb 性能差距 1000倍 以上!...同时还支持通配符 默认情况下,duckdb 会把 csv 的第一行也加入到记录: 可以使用内置函数,通过参数设定一些加载规则: 行4: read_csv_auto 可以设置具体加载文件时的设定 不过

1.6K60

读懂diff

它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:   $ diff diff就会告诉你,这两个文件有何差异。...a   a   a b   a   a   a 三、正常格式的diff 现在对f1f2进行比较:   $ diff f1 f2 这时,diff就会显示正常格式的结果:   4c4...第二行分成两个部分。   < a 前面的小于号,表示要从f1当中去除该行(也就是第4行),后面的"a"表示该行的内容。 第三行用来分割f1f2。   ...1990年,GNU diff率先推出了"合并格式"的diff,将f1f2的上下文合并在一起显示。 它的使用方法是加入u参数(代表unified)。   ...index 6f8a38c..449b072 100644 第三行表示进行比较两个文件。

1.1K70

6个pandas新手容易犯的错误

在实际如果出现了这些问题可能不会有任何的错误提示,但是在应用却会给我们带来很大的麻烦。 使用pandas自带的函数读取大文件 第一个错误与实际使用Pandas完成某些任务有关。...['f1000'] = tps_october.apply( lambda row: big_function(row['f0'], row['f1'], row['f2']), axis=...以下这张表是pandas的所有类型: Pandas命名方式,数据类型名称之后的数字表示此数据类型的每个数字将占用多少位内存。因此,我们的想法是将数据集中的每一列都转换为尽可能小的子类型。...Pandas 允许通过 style 属性对其 DataFrame 进行样式设置。...添加这样的样式可以让我们更轻松地发现原始数字的模式,设置无需使用其他的可视化库。 实际上,不对df进行样式设置并没有错。但是这的确是一个很好的功能,对吧。

1.6K20
领券