草庐IT

python - Pandas 0.23 groupby 和 pct 更改未返回预期值

对于以下数据框中的每个Name,我试图找出从一个Time到下一个Amount列的百分比变化:创建数据框的代码:importpandasaspddf=pd.DataFrame({'Name':['Ali','Ali','Ali','Cala','Cala','Cala','Elena','Elena','Elena'],'Time':[1,2,3,1,2,3,1,2,3],'Amount':[24,52,34,95,98,54,32,20,16]})df.sort_values(['Name','Time'],inplace=True)我尝试的第一种方法(基于thisquestionan

python - Pandas 滚动申请不做任何事情

我有一个像这样的DataFrame:df2=pd.DataFrame({'date':['2015-01-01','2015-01-02','2015-01-03'],'value':['a','b','a']})datevalue02015-01-01a12015-01-02b22015-01-03a我正在尝试了解如何对其应用自定义滚动功能。我试过这样做:df2.rolling(2).apply(lambdax:1)但这给了我原来的数据帧:datevalue02015-01-01a12015-01-02b22015-01-03a如果我有一个不同的DataFrame,像这样:df3=p

python - 使用多索引在 Pandas 中添加小计列

我有一个数据框,在列上有一个3级深度多索引。我想计算跨行(sum(axis=1))的小计,其中我对其中一个级别求和,同时保留其他级别。我想我知道如何使用pd.DataFrame.sum的level关键字参数来做到这一点。但是,我在考虑如何将这个总和的结果合并回原始表时遇到了麻烦。设置:importnumpyasnpimportpandasaspdfromitertoolsimportproductnp.random.seed(0)colors=['red','green']shapes=['square','circle']obsnum=range(5)rows=list(produc

解决pandas.errors.InvalidIndexError: (slice(None, None, None), None)

Traceback(mostrecentcalllast):File"D:\Anaconda\lib\site-packages\pandas\core\indexes\base.py",line3621,inget_locreturnself._engine.get_loc(casted_key)File"pandas\_libs\index.pyx",line136,inpandas._libs.index.IndexEngine.get_locFile"pandas\_libs\index.pyx",line142,inpandas._libs.index.IndexEngine.get

python - Pandas 在 to_json 时删除空值

我实际上有一个pandas数据框,我想将它保存为json格式。从Pandas文档中它说:NoteNaN‘s,NaT‘sandNonewillbeconvertedtonullanddatetimeobjectswillbeconvertedbasedonthedate_formatanddate_unitparameters然后使用orient选项records我有这样的东西[{"A":1,"B":4,"C":7},{"A":null,"B":5,"C":null},{"A":3,"B":null,"C":null}]是否可以用这个代替:[{"A":1,"B":4,"C":7},{"B

python - Pandas bool 值 .any() .all()

我一直收到ValueError:ThetruthvalueofaSeriesisambiguous.使用pandas进行bool测试时使用a.empty、a.bool()、a.item()、a.any()或a.all().。不明白它说的是什么,我决定试着弄明白。然而,我现在完全糊涂了。我在这里创建了一个包含两个变量的数据框,它们之间共享一个数据点(3):In[75]:importpandasaspddf=pd.DataFrame()df['x']=[1,2,3]df['y']=[3,4,5]现在我尝试所有(是x小于y),我将其翻译为“是否所有x小于y的值”,我得到一个没有意义的答案。I

python - Pandas 变换()与应用()

我不明白为什么apply和transform在同一数据帧上调用时返回不同的数据类型。之前我向自己解释这两个函数的方式大致是“apply折叠数据,transform与apply做完全相同的事情”code>但保留了原始索引并且不会崩溃。”请考虑以下事项。df=pd.DataFrame({'id':[1,1,1,2,2,2,2,3,3,4],'cat':[1,1,0,0,1,0,0,0,0,1]})让我们识别那些在cat列中具有非零条目的id。>>>df.groupby('id')['cat'].apply(lambdax:(x==1).any())id1True2True3False4Tr

python - Pandas :合并(内部连接)数据框的行数比原来的多

我在JupyterNotebook上使用python3.4,试图合并两个数据框,如下所示:df_A.shape(204479,2)df_B.shape(178,3)new_df=pd.merge(df_A,df_B,how='inner',on='my_icon_number')new_df.shape(266788,4)我认为上面合并的new_df应该比df_A有更少的行,因为合并就像一个内部连接。但是为什么这里的new_df居然比df_A有更多行呢?这是我真正想要的:我的df_A是这样的:idmy_icon_number-----------------------------A1

python - 在 matplotlib 图中使用 Pandas 数据帧索引作为 x 轴的值

我在Pandasdateframe中有时间序列,其中包含许多我想绘制的列。有没有办法将x轴设置为始终使用dateframe中的索引?当我使用Pandas的.plot()方法时,x轴的格式正确,但是当我传递我的日期和列时,我想直接绘制到matplotlib,该图没有正确绘制。提前致谢。plt.plot(site2.index.values,site2['Cl'])plt.show()仅供引用:site2.index.values生成此内容(为简洁起见,我删除了中间部分):array(['1987-07-25T12:30:00.000000000+0200','1987-07-25T16:

python - 使用逻辑表达式和 if 语句评估 pandas 系列值

我在使用if语句评估字典中的值时遇到问题。给定以下字典,这是我从数据框中导入的(以防万一):>>>pnl[company]29:ActiveCreditDateDebitStrikeType0102013-01-082.326521.15Put1002012-11-264080Put2002012-11-2640080Put我尝试评估以下语句以确定Active的最后一个值的值:ifpnl[company].tail(1)['Active']==1:print'yay'但是,我遇到了以下错误消息:Traceback(mostrecentcalllast):File"",line1,ini