我有一个在分组后创建的带有MultiIndex的DataFrame:importnumpyasnpimportpandasaspdfromnumpy.randomimportrandndf=pd.DataFrame({'A':['a1','a1','a2','a3'],'B':['b1','b2','b3','b4'],'Vals':randn(4)}).groupby(['A','B']).sum()#Vals#AB#a1b1-1.632460#b20.596027#a2b3-0.619130#a3b4-0.002009如何在MultiIndex中添加一个级别,以便将其转换为:#Va
我有一个在分组后创建的带有MultiIndex的DataFrame:importnumpyasnpimportpandasaspdfromnumpy.randomimportrandndf=pd.DataFrame({'A':['a1','a1','a2','a3'],'B':['b1','b2','b3','b4'],'Vals':randn(4)}).groupby(['A','B']).sum()#Vals#AB#a1b1-1.632460#b20.596027#a2b3-0.619130#a3b4-0.002009如何在MultiIndex中添加一个级别,以便将其转换为:#Va
在Pandas数据框上执行groupby的最佳方法是什么,但从该groupby中排除某些列?例如我有以下数据框:CodeCountryItem_CodeItemEle_CodeUnitY1961Y1962Y19632Afghanistan15Wheat5312Ha1020302Afghanistan25Maize5312Ha1020304Angola15Wheat7312Ha3040504Angola25Maize7312Ha304050我想按Country和Item_Code列分组,只计算Y1961、Y1962和Y1963列下的行的总和。生成的数据框应如下所示:CodeCountry
在Pandas数据框上执行groupby的最佳方法是什么,但从该groupby中排除某些列?例如我有以下数据框:CodeCountryItem_CodeItemEle_CodeUnitY1961Y1962Y19632Afghanistan15Wheat5312Ha1020302Afghanistan25Maize5312Ha1020304Angola15Wheat7312Ha3040504Angola25Maize7312Ha304050我想按Country和Item_Code列分组,只计算Y1961、Y1962和Y1963列下的行的总和。生成的数据框应如下所示:CodeCountry
我想在Pandas数据框的所述列中的每个值的开头附加一个字符串(优雅地)。我已经想出了如何做到这一点,我目前正在使用:df.ix[(df['col']!=False),'col']='str'+df[(df['col']!=False),'col']这似乎是一件非常不雅的事情-你知道其他方法吗(也可能将字符添加到该列为0或NaN的行)?如果这还不清楚,我想转:col1a20进入:col1stra2str0 最佳答案 df['col']='str'+df['col'].astype(str)例子:>>>df=pd.DataFrame(
我想在Pandas数据框的所述列中的每个值的开头附加一个字符串(优雅地)。我已经想出了如何做到这一点,我目前正在使用:df.ix[(df['col']!=False),'col']='str'+df[(df['col']!=False),'col']这似乎是一件非常不雅的事情-你知道其他方法吗(也可能将字符添加到该列为0或NaN的行)?如果这还不清楚,我想转:col1a20进入:col1stra2str0 最佳答案 df['col']='str'+df['col'].astype(str)例子:>>>df=pd.DataFrame(
我有点卡在以另一个变量为条件提取一个变量的值。例如以下数据框:ABp11p12p33p24B=3时如何获取A的值?每次我提取A的值时,我都会得到一个对象,而不是字符串。 最佳答案 您可以使用loc获得满足您条件的系列,然后iloc获取第一个元素:In[2]:dfOut[2]:AB0p111p122p333p24In[3]:df.loc[df['B']==3,'A']Out[3]:2p3Name:A,dtype:objectIn[4]:df.loc[df['B']==3,'A'].iloc[0]Out[4]:'p3'
我有点卡在以另一个变量为条件提取一个变量的值。例如以下数据框:ABp11p12p33p24B=3时如何获取A的值?每次我提取A的值时,我都会得到一个对象,而不是字符串。 最佳答案 您可以使用loc获得满足您条件的系列,然后iloc获取第一个元素:In[2]:dfOut[2]:AB0p111p122p333p24In[3]:df.loc[df['B']==3,'A']Out[3]:2p3Name:A,dtype:objectIn[4]:df.loc[df['B']==3,'A'].iloc[0]Out[4]:'p3'
假设我有一个用户事件日志,我想生成一份总持续时间和每天唯一用户数的报告。importnumpyasnpimportpandasaspddf=pd.DataFrame({'date':['2013-04-01','2013-04-01','2013-04-01','2013-04-02','2013-04-02'],'user_id':['0001','0001','0002','0002','0002'],'duration':[30,15,20,15,30]})聚合持续时间非常简单:group=df.groupby('date')agg=group.aggregate({'durat
假设我有一个用户事件日志,我想生成一份总持续时间和每天唯一用户数的报告。importnumpyasnpimportpandasaspddf=pd.DataFrame({'date':['2013-04-01','2013-04-01','2013-04-01','2013-04-02','2013-04-02'],'user_id':['0001','0001','0002','0002','0002'],'duration':[30,15,20,15,30]})聚合持续时间非常简单:group=df.groupby('date')agg=group.aggregate({'durat