如果您对转换pandas.groupby为dict和pandas转dict感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解转换pandas.groupby为dict的各种细节,并对pandas转
如果您对转换pandas.groupby为dict和pandas 转dict感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解转换pandas.groupby为dict的各种细节,并对pandas 转dict进行深入的分析,此外还有关于as_index = False时,groupby.first,groupby.nth,groupby.head有什么区别、dict(groupby)和groupby之间的区别、groupby.object im Pandas、pandas Groupby Diff的实用技巧。
本文目录一览:- 转换pandas.groupby为dict(pandas 转dict)
- as_index = False时,groupby.first,groupby.nth,groupby.head有什么区别
- dict(groupby)和groupby之间的区别
- groupby.object im Pandas
- pandas Groupby Diff
转换pandas.groupby为dict(pandas 转dict)
考虑一下,数据框d
:
d = pd.DataFrame({''a'': [0, 2, 1, 1, 1, 1, 1], ''b'': [2, 1, 0, 1, 0, 0, 2], ''c'': [1, 0, 2, 1, 0, 2, 2]}> a b c0 0 2 11 2 1 02 1 0 23 1 1 14 1 0 05 1 0 26 1 2 2
我想按列将其拆分a
成字典,像这样:
{0: a b c 0 0 2 1, 1: a b c 2 1 0 2 3 1 1 1 4 1 0 0 5 1 0 2 6 1 2 2, 2: a b c 1 2 1 0}
我发现使用的解决方案pandas.groupby
是:
{k: table for k, table in d.groupby("a")}
还有哪些其他解决方案?
答案1
小编典典您可以dict
在tuple
/list
上使用/应用groupby
:
res = dict(tuple(d.groupby(''a'')))
as_index = False时,groupby.first,groupby.nth,groupby.head有什么区别
编辑: 我在np.nan
@ coldspeed,@ wen-ben,@
ALollz指出的字符串中犯的菜鸟错误。答案非常好,因此我不会删除此问题以保留这些答案。
原文:
我已经阅读了这个问题/答案[groupby.first()和groupby.head(1)有什么区别?
该答案说明差异在于处理NaN
价值上。但是,当我打电话给groupby
时as_index=False
,他们俩都选择了NaN
。
此外,Pandas具有groupby.nth
与和类似的功能head
,并且first
有什么差异groupby.first(),groupby.nth(0),groupby.head(1)
有as_index=False
?
下面的例子:
In [448]: df
Out[448]:
A B
0 1 np.nan
1 1 4
2 1 14
3 2 8
4 2 19
5 2 12
In [449]: df.groupby('A',as_index=False).head(1)
Out[449]:
A B
0 1 np.nan
3 2 8
In [450]: df.groupby('A',as_index=False).first()
Out[450]:
A B
0 1 np.nan
1 2 8
In [451]: df.groupby('A',as_index=False).nth(0)
Out[451]:
A B
0 1 np.nan
3 2 8
我看到`firs()’重置了索引,而其他2则没有。除此之外,还有什么区别吗?
dict(groupby)和groupby之间的区别
我有这样的清单
[u'201003',u'200403',u'200803',u'200503',u'201303',u'200903',u'200603',u'201203',u'200303',u'200703',u'201103']
让我们将此列表称为“ years_list”
当我按年分组时
group_by_yrs_list = groupby(years_list,key = lambda year_month: year_month[:-2])
for k,v in group_by_yrs_list:
print k,list(v)
我得到了期望的输出:
2010 [u'201003']
2004 [u'200403']
2008 [u'200803']
2005 [u'200503']
2013 [u'201303']
2009 [u'200903']
2006 [u'200603']
2012 [u'201203']
2003 [u'200303']
2007 [u'200703']
2011 [u'201103']
然后,我像这样稍微更改了实现,
group_by_yrs_list = dict(groupby(years_list,key = lambda year_month: year_month[:-2]))
for k,v in group_by_yrs_list.items():
print k,list(v)
我刚刚添加了一个字典,但是输出是不同的,
2003 []
2006 []
2007 []
2004 []
2005 []
2008 []
2009 []
2011 [u'201103']
2010 []
2013 []
2012 []
我不知道为什么。请帮助我找到字典的实际作用。
(Python 2.7)
groupby.object im Pandas
如何解决groupby.object im Pandas?
如何从groupby.object中获得系列,我需要索引和几列(年)并计算平均值!
df_Answer_Three = df_Answer_One_TM.groupby([''Country''])[''2006'',''2007'',''2008'',''2009'',''2010'',''2011'',''2012'',''2013'',''2014'',''2015'']
df_Sum = pd.DataFrame(df_Answer_Three)
df_avgGDP = df_Sum[''2006'':''2015''].mean(axis=1)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
pandas Groupby Diff
所以我的数据框看起来像这样:
from pandas.compat import StringIOd = StringIO(''''''date,site,country,score2018-01-01,google,us,1002018-01-01,google,ch,502018-01-02,google,us,702018-01-03,google,us,602018-01-02,google,ch,102018-01-01,fb,us,502018-01-02,fb,us,552018-01-03,fb,us,1002018-01-01,fb,es,1002018-01-02,fb,gb,100'''''')df = pd.read_csv(d, sep=",")
每个站点的分数因国家/地区而异。我正在尝试查找每个站点/国家/地区组合得分的1/3/5天差异。
输出应为:
date,site,country,score,1_day_diff2018-01-01,google,ch,50,02018-01-02,google,ch,10,-402018-01-01,google,us,100,02018-01-02,google,us,70,-302018-01-03,google,us,60,-102018-01-01,fb,es,100,02018-01-02,fb,gb,100,02018-01-01,fb,us,50,02018-01-02,fb,us,55,52018-01-03,fb,us,100,45
我首先尝试按网站/国家/日期排序,然后按网站和国家/地区分组,但是我无法从分组对象中获得区别。
答案1
小编典典首先,对DataFrame排序,然后您需要做的是groupby.diff()
:
df = df.sort_values(by=[''site'', ''country'', ''date''])df[''diff''] = df.groupby([''site'', ''country''])[''score''].diff().fillna(0)dfOut: date site country score diff8 2018-01-01 fb es 100 0.09 2018-01-02 fb gb 100 0.05 2018-01-01 fb us 50 0.06 2018-01-02 fb us 55 5.07 2018-01-03 fb us 100 45.01 2018-01-01 google ch 50 0.04 2018-01-02 google ch 10 -40.00 2018-01-01 google us 100 0.02 2018-01-02 google us 70 -30.03 2018-01-03 google us 60 -10.0
sort_values
不支持任意排序。如果您需要进行任意排序(例如Google在fb之前),则需要将它们存储在集合中并将列设置为分类。然后sort_values将遵守您在此处提供的顺序。
关于转换pandas.groupby为dict和pandas 转dict的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于as_index = False时,groupby.first,groupby.nth,groupby.head有什么区别、dict(groupby)和groupby之间的区别、groupby.object im Pandas、pandas Groupby Diff的相关知识,请在本站寻找。
本文标签: