Pandas
肥宅_Sean
在UCB,Stanford各做过一段时间的RA。去牛津访学过一段时间。
现在在某家头部量化当研究员。
个人站: https://seanquant.github.io/
展开
-
dataframe的multiIndex在次级index上做筛选
简述比如,下面这种数据,其中字母都是index,数值是valueA a 1 b 2 c 3B c 4idx = pd.IndexSlicedf[idx[:, ["a", "b"]], ]参考https://www.pypandas.cn/docs/user_guide/advanced.html#具有层次索引的高级索引方法...原创 2021-04-07 20:33:12 · 1565 阅读 · 0 评论 -
pandas明明数据有,但是通过该标签进行筛选的时候就得到空或者是错误的结果
简述如果你也是遇到来,想要通过pandas筛选dataframe中的数据,但是筛选的结果却都是空的话或者是 遇到了 xxx in series 这样的操作,但是结果不符合预期。那下面的方法可能会帮到你。解决办法问题原因:你筛选的类型是int 或者类似的 int32,int64之类的。因此筛选的时候,用的是index,而不是value在进行判断解决办法:.values操作,指定用series的value作为list比如: xxx in series 变成 xxx in series.value原创 2021-03-29 14:14:35 · 1545 阅读 · 0 评论 -
dataframe在groupby之后,选其中的某列作为画图的新index
简述dataframe在groupby之后的成了多个dateframe的集合(多加了一个index层,元素是对应的dateframe)。这时候想选其中的某列画图(目前)是没办法做到的。但想要实现这个,其实也很简单,就是 先在整个dataframe重新设置了index之后,再去groupby这样就可以直接plot操作了。附上相关需要链接:Python将DataFrame的某一列作为index...原创 2021-02-20 17:32:12 · 1692 阅读 · 0 评论 -
多个Series合并成Dataframe,index不完全匹配怎么处理
简述比如这两个数据:a:a=pd.Series([1, 2, 3,], index=[2, 3, 4])输出效果为:2 13 24 3dtype: int64对应的b:b=pd.Series([4, 1, 2, 3,], index=[1, 2, 3, 4])1 42 13 24 3dtype: int64合并:c = pd.concat([a, b], join='outer', axis=1)c.columns = [原创 2020-05-19 18:20:47 · 4982 阅读 · 0 评论 -
Numpy.array矩阵百分制化(比例化)
简述用途不用说,很常用对于DataFrame的情况,但是操作却截然不同。注意对比。Pandas.DataFrame按行求百分数(比例数)问题假设有数据A>>> Aarray([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, ...原创 2019-06-02 23:14:39 · 6730 阅读 · 0 评论 -
Pandas.DataFrame按行求百分数(比例数)
简述Motivation一般来说,每个部分的内容数量是较为容易获取的,但比例(百分数)这样的数据是二次数据,这样的操作很常见比例的信息相比于纯粹的数字更体现的整体体系的内部变化迁移的过程Contribution给了实例,follow下就没问题了~Codes导入包的部分,我就不写了哈这里假设每行是属于不同月份的数据>>> df a ...原创 2019-06-02 23:04:34 · 27413 阅读 · 5 评论 -
Pandas.DataFrame转置
简述Motivationsometimes,换一种获取数据的方式,可以提高数据获取的速度。sometimes,由于预计爬取的数据长度不确定,只能这么先存储起来。sometimes,有个给你的数据就是这样,但是没办法很方便的使用…这些情况下,你可能就会需要遇到DataFrame行列转置的方法。Contribution提供了Pandas.DataFrame的行列转置的方法实验部分...原创 2019-06-02 22:52:19 · 66391 阅读 · 3 评论 -
pandas.to_csv()中文编码问题
简述设置encoding = 'utf_8_sig'就好了~实例:df.to_csv('askci.csv', encoding='utf_8_sig')原创 2018-10-10 17:16:48 · 9999 阅读 · 7 评论 -
pandas将Series变成键值对
代码下面的代码就会将一个series转换成一个list,然后,list中的对象就是键值对类似于下面的范式:[(index, value)…]list(series.items())原创 2018-10-05 23:49:22 · 6968 阅读 · 3 评论 -
Pandas通过某列不是NaN来进行筛选
根据Column列来筛选整个dataframe下面的如果是空的就不要整一行df[df['Column'].notna()]原创 2018-10-05 13:08:09 · 28777 阅读 · 0 评论 -
pandas.Series.multiply()含义解释
简述 可以和下面这个篇文章对照着看,有多不同 pandas.DataFrame.multiply()含义解释这个非常有意思,这个也是类似于乘法,但是是对应位置相乘的乘法>>> import pandas as pd>>> a = pd.Series([1,2,3])>>> import numpy as np>...原创 2018-09-17 11:45:12 · 7147 阅读 · 0 评论 -
不允许一个迭代的对象自己接着迭代下去(Python)【fronzenset】
这个问题,我是在用Pandas处理数据的时候用的这个连接是我遇到这个问题的详细解析。这篇文章,做的其实是对这一小块的深入挖掘。 当时遇到了这样的问题。 我想要把满足特定条件的dataframe的每一个的元素都赋值为一个同一个可迭代的对象, 但是,这里就出现了问题了。这里的赋值机制会使得在赋值的过程中,迭代的放置。机智的人可能会想了。如果我用一个二重的可迭代对象。比如列表的列表。但其实...原创 2018-03-24 09:49:58 · 1178 阅读 · 0 评论 -
df.where(dfmask, targetValue)展示
下面代码通过一些对比来看出对于特定区域的赋值问题做了演示之前我写了一些文章,看到上面有很多关于这个的问题的讨论,大家有兴趣可以去看看。第一篇 第二篇 第三篇但在这里, 我会对于pandas中dataframe的where函数做讲解。import pandas as pdif __name__ == '__main__': df = pd.DataFrame({'AA...原创 2018-03-24 10:11:56 · 1782 阅读 · 0 评论 -
某些列满足某些条件就被改是什么值,不满足就被改为另外的一些值(python pandas)
直接上实例代码吧import pandas as pdimport numpy as npif __name__ == '__main__': df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]}) print(df) d...原创 2018-03-24 10:22:25 · 3196 阅读 · 0 评论 -
Dataframe花样切片~(Python)
这个问题可以分两个思路来讲虽然本质上都是一样的。在之前的一篇文章中,我提到了用dfmask矩阵这个概念(在官网上有的hhh) 点击这里可以看~。 这里我也会用到类似的东西,但是理解会更透彻一点。先来个简单的点hhhimport pandas as pdif __name__ == '__main__': df = pd.DataFrame({'AAA': ran...原创 2018-03-24 11:08:53 · 4884 阅读 · 0 评论 -
下载股票代码的历史数据并打包成csv
下载对应的股票代码的历史数据并整合出来try: import os import tushare as tsexcept Exception: os.system('pip install tushare')df = ts.get_hist_data('000001')df.to_csv('000001.csv')...原创 2018-04-09 19:20:27 · 8888 阅读 · 0 评论 -
Datafarne按照某一列的特定规则进行排序【Python】
import pandas as pdif __name__ == '__main__': df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]}) print((df.AAA - 1).abs().argsort()) pri...原创 2018-03-25 14:46:49 · 3274 阅读 · 0 评论 -
【解决方法】Panda read_csv()把第一行的数据变成了列名,怎么处理
前言有些时候,我们会遇到很多这样的数据,比如,这个csv的第一行并不是我们想象中的那样是一个列名。那样,我们处理数据的时候,就会出现问题,第一个不一致了嘛。解决方案调用csv库,自己重新编写读文件的程序。csv库,是python自带的库。如果数据都是字符类型这样的条件下,问题是非常简单,直接调用csv.reader()这个迭代器来读取就好了。如果数据中除了有字符串还...原创 2018-04-21 15:29:22 · 36695 阅读 · 4 评论 -
【解决办法】read_csv()第一列作为index
简述在之前读取csv文件的时候,发现第一列被读到了dataframe的column中了,而不是读到了index中,查阅完文档后得到解决。解决办法 index_col : int or sequence or False, default None Column to use as the row labels of the DataFrame. If a sequenc...原创 2018-09-17 11:12:05 · 52692 阅读 · 2 评论 -
pandas.DataFrame.multiply()含义解释
简述其实,就是做乘法。比如:>>> pd.DataFrame({'A':[1, 2, 3]}) A0 11 22 3>>> a = pd.DataFrame({'A':[1, 2, 3]})>>> a.multiply(2) A0 21 42 6...原创 2018-09-17 11:33:53 · 15546 阅读 · 0 评论 -
ValueError: Must have equal len keys and value when setting with an iterable
这个错误是数值大小错误具体的意思是: 必须有相同长度的关键字跟值,当设置的对象是一个可迭代的对象的时候。可迭代的对象,就是想tuple,list,字典一类的。遇到这个错误,我故意在做测试的时候。具体的代码这段代码是有错误的,错误部分已经标记出来了import pandas as pdif __name__ == '__main__': df = pd......原创 2018-03-24 09:38:36 · 32144 阅读 · 2 评论