草庐IT

Pandas-Datareader

全部标签

python - pandas 在 Python 中合并时删除索引索引?

我正在使用merge(...,how='left')合并两个数据帧,因为我只想保留与“左”数据帧匹配的条目。问题是合并操作似乎删除了我最左边数据框的索引,如下所示:importpandasdf1=pandas.DataFrame([{"id":1,"name":"bob"},{"id":10,"name":"sally"}])df1=df1.set_index("id")df2=pandas.DataFrame([{"name":"bob","age":10},{"name":"sally","age":11}])print"df1premerge:"printdf1df1=df1.m

python - 使用pandas.read_csv从csv文件加载数据时如何指定dtype?

我有一些格式如下的文本文件:000423|东阿阿胶|300|1|0.15000||000425|徐工机械|600|1|0.15000||000503|海虹控股|400|1|0.15000||000522|白云山A||2||1982.080|000527|美的电器|900|1|0.15000||000528|柳工|300|1|0.15000||当我使用read_csv将它们加载到DataFrame时,它​​不会为某些列生成正确的数据类型。例如,第一列被解析为int,而不是unicodestr,第三列被解析为unicodestr,而不是int,因为缺少一个数据......有没有办法预设Da

python - Pandas :创建新的数据框,平均来自另一个数据框的重复项

假设我有一个包含重复列的数据框my_df,例如foobarfoohello011511252135我想创建另一个平均重复数据的数据框:foobarhello0.5151.5152.515我如何在Pandas中执行此操作?到目前为止,我已经设法识别出重复项:my_columns=my_df.columnsmy_duplicates=print[xforx,yincollections.Counter(my_columns).items()ify>1]我不知道如何让Pandas对它们进行平均。 最佳答案 您可以groupby列索引并取m

python - Pandas:为什么附加到 float 和整数的数据帧比充满 NaN 的数据帧要慢

我正在从一个文件中获取数据,该文件通过SierraChart从InteractiveBrokers5秒OHLCVT柱接收数据。按照早期帖子中的建议,我没有将每个新行附加到数据框,而是使用历史文件构建了一个数据框,并向其附加了5000个具有正确时间戳的“空白”记录。然后我将每个新行写在空白行上,如果时间戳丢失并更新指针则填充任何行。这很好用。这是当前的classesandfunctions.我的初始版本创建了5000行NaN(OHLCVxyz)。我认为从结束数据类型开始会更整洁,因此将“空白”记录转换为零,其中OHLC是float,Vxyz是整数,使用:dg.iloc[0:5000]=0

python - pandas groupby 两列并乘以另外两列

我有一个这样分组的数据框;pricequantityvatdatebrand20-Jun-13Reebok7.082.2Adidas12.033.8Campus2.5384.2Woodlands23.097.2Boot3.2353.321-Jun-13Reebok7.062.2Adidas12.0233.8Campus2.5184.2Woodlands23.0297.2Boot3.2153.322-Jun-13Reebok5.023.5Adidas10.052.8Campus2.0503.5Woodlands25.046.5Boot2.5102.8我如何将'date'和'brand'分

python - pandas groupby 后缺少列

我有一个pandas数据框df。我将它按3列分组,然后计算结果。当我这样做时,我丢失了一些信息,特别是name列。此列与desk_id列1:1映射。无论如何都将两者都包含在我的最终数据框中?这是数据框:shift_idshift_start_timeshift_end_timenameend_timedesk_idshift_hour0374230642014-01-1708:00:002014-01-1712:00:00AdamScott2014-01-1710:16:41.0400001555798721374230642014-01-1708:00:002014-01-1712:

python Pandas : how to run multiple univariate regression by group

假设我有一个DataFrame,其中有一列y变量和许多列x变量。我希望能够运行y与x1、y与x2的多个单变量回归,...,等等,并将预测存储回DataFrame。我还需要通过组变量来执行此操作。importstatsmodels.apiassmimportpandasaspddf=pd.DataFrame({'y':np.random.randn(20),'x1':np.random.randn(20),'x2':np.random.randn(20),'grp':['a','b']*10})defols_res(x,y):returnsm.OLS(y,x).fit().predict

python - pandas.DataFrame.equals 的契约(Contract)

我有一个函数的简单测试用例,它返回一个可能包含NaN的df。我正在测试输出和预期输出是否相等。>>>outputOut[1]:rttsttttct020483009011409690130120702651[3rowsx5columns]>>>expectedOut[2]:rttsttttct020483009011409690130120702651[3rowsx5columns]>>>output==expectedOut[3]:rttsttttct0TrueTrueTrueTrueTrue1TrueTrueTrueTrueTrue2TrueTrueTrueTrueTrue但是,由

python - Pandas Filter 函数返回了一个 Series,但需要一个标量 bool

我试图在pandas数据框上使用过滤器来过滤掉所有匹配重复值的行(当存在重复时需要删除所有行,而不仅仅是第一行或最后一行)。这就是我在编辑器中的工作方式:df=df.groupby("student_id").filter(lambdax:x.count()==1)但是当我用这段代码运行我的脚本时,我得到了错误:TypeError:filterfunctionreturnedaSeries,butexpectedascalarbool在尝试应用过滤器之前,我通过连接另外两个帧来创建数据帧。 最佳答案 应该是:In[32]:group

python - 在包含字符串列表的 Series 上使用 Pandas 字符串方法 'contains'

给定一个简单的PandasSeries,其中包含一些可以由多个句子组成的字符串:In:importpandasaspds=pd.Series(['Thisisalongtext.Ithasmultiplesentences.','Doyousee?Morethanonesentence!','Thisonehasonlyonesentencethough.'])Out:0Thisisalongtext.Ithasmultiplesentences.1Doyousee?Morethanonesentence!2Thisonehasonlyonesentencethough.dtype:o