Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫组制作了一系列;不是groupby对象_Python_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python 熊猫组制作了一系列;不是groupby对象

Python 熊猫组制作了一系列;不是groupby对象,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个事务的数据框架: transactions.head(): Amount Date of Transaction Description \ 0 39.95 2017-03-30 Fake_Transaction_One 1 2.39 2017-04-01 Fake_Transaction_Two 2 8.03 2017-04-01 F

我有一个事务的数据框架:

transactions.head():

   Amount      Date of Transaction   Description  \
0   39.95      2017-03-30            Fake_Transaction_One   
1    2.39      2017-04-01            Fake_Transaction_Two      
2    8.03      2017-04-01            Fake_Transaction_Three      
3   34.31      2017-04-01            Fake_Transaction_Four    
4   10.56      2017-04-03            Fake_Transaction_Five     

       Purchase_Type        year_month  
0      Miscellaneous        2017-03  
1      tool_expense         2017-04  
2      food_and_domestic    2017-04  
3      food_and_domestic    2017-04  
4      food_and_domestic    2017-04  
我在此数据帧上运行groupby命令:

grouped_transactions = transactions.groupby(['Purchase_Type','year_month'])['Amount'].sum()
这将生成groupby对象:

Purchase_Type        year_month
tool_expense         2017-04       72.49
Calendar_Event       2017-08        3.94
                     2017-12       23.92
                     2018-02       42.91
                     2018-03       10.91
我想在此服务器上运行groupby命令,例如

grouped_transactions.groups.keys()
但是,我无法确定,因为该对象不是groupby对象,而是一个系列:

In: type(grouped_transactions)
Out: pandas.core.series.Series
查看分组的_事务似乎是一个groupby对象,而不是一个系列。此外,它是创建的,但在数据帧上运行.groupby方法。因此,我不确定为什么它是一个系列

我的理解或方法中有什么错误?

获得
系列
数据帧
是预期的行为(如果方法像
groupby
那样使用聚合函数链接)

如果需要
groupby
对象:

g = transactions.groupby(['Purchase_Type','year_month'])
print (g)
<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x00000000191EA5C0>
或:


groupby
对象编制索引,或对其调用聚合方法,将其转换为
series
dataframe
类型对象。最佳实践:如果需要键和聚合,请将
GroupBy
对象分配给一个变量,然后对该对象执行多个操作

下面是一些例子

df = pd.DataFrame([['A', 'B', 1], ['A', 'B', 2], ['A', 'C', 3]])

g = df.groupby([0, 1])
# <pandas.core.groupby.groupby.DataFrameGroupBy object at 0x0000000007E76AC8>

keys = g.groups.keys()
# dict_keys([('A', 'B'), ('A', 'C')])

sums_df = g.sum()
# <class 'pandas.core.frame.DataFrame'>

sums_series_group = g[2]
# <class 'pandas.core.groupby.groupby.SeriesGroupBy'>

sums_series = g[2].sum()
# <class 'pandas.core.series.Series'>
df=pd.DataFrame([[A',B',1],'A',B',2],'A',C',3]]
g=df.groupby([0,1])
# 
keys=g.groups.keys()
#口述键([('A','B'),('A','C'))
sums_df=g.sum()
# 
和系列组=g[2]
# 
sums_series=g[2]。sum()
# 
使用以下方法:

grouped_transactions = transactions.groupby(['Purchase_Type','year_month'])[['Amount']].sum()

如果使用双括号,将创建一个列表,并将其作为参数传递给DataFrame索引函数。

如果要使用groupby对象,则需要
g=transactions.groupby(['Purchase\u Type','year\u month'])['Amount']
,但使用groupby对象的原因是什么?预期的输出是什么?如果需要groupby对象,为什么要立即将
['Amount'].sum()
放在它后面?你把你想要的东西扔掉了。这和制作连续剧的问题有什么关系?你能详细说明一下吗?因为我相信他使用了单括号,所以分组的U事务是一个系列而不是一个数据帧。如果我错了,请纠正我,我刚开始学习。谢谢
df = pd.DataFrame([['A', 'B', 1], ['A', 'B', 2], ['A', 'C', 3]])

g = df.groupby([0, 1])
# <pandas.core.groupby.groupby.DataFrameGroupBy object at 0x0000000007E76AC8>

keys = g.groups.keys()
# dict_keys([('A', 'B'), ('A', 'C')])

sums_df = g.sum()
# <class 'pandas.core.frame.DataFrame'>

sums_series_group = g[2]
# <class 'pandas.core.groupby.groupby.SeriesGroupBy'>

sums_series = g[2].sum()
# <class 'pandas.core.series.Series'>
grouped_transactions = transactions.groupby(['Purchase_Type','year_month'])[['Amount']].sum()