list()的groupby/Dataframe行为异常

2024-09-27 17:55:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要构建一个dict,在从数据帧(“grouped”)构建的组中选择值。idcolumn是一个由一个字符串[“column_name”]组成的列表(我之所以将其列为一个列表,是因为在某些情况下,我需要为使用标签的操作附加其他各种字符串/列名称)。在

所以我用这个语句来检索组:

grouped.get_group(k).loc[:,idcolumn]

它的工作原理与

^{pr2}$

以[“column_name”]为标题输出所选数据的数据帧。在

我完整的表达是:

dict_to_build= {k: list(grouped.get_group(k).loc[:,idcolumn]) for k in grouped.groups.keys() }

但我有一个非常奇怪的错误。
构建的dict包含所有键,但作为唯一值“column_name”。 如果我使用

dict_to_build= {k: list(grouped.get_group(k).loc[:,idcolumn[0]) for k in grouped.groups.keys() }

这句话完全可以。在

举个例子:

In [115]: pde=pd.DataFrame({"a":[1,2,3,1,2,3], "column_name":["a","b","c","d","e","f"]})

In [116]: pde
Out[116]: 
   a column_name
0  1           a
1  2           b
2  3           c
3  1           d
4  2           e
5  3           f

In [117]: grouped=pde.groupby[1]
Traceback (most recent call last):

  File "<ipython-input-117-b504dadfee12>", line 1, in <module>
    grouped=pde.groupby[1]

TypeError: 'method' object is not subscriptable


In [118]: grouped=pde.groupby("a")

In [119]: grouped.get_group(1).loc[:,"column_name"]
Out[119]: 
0    a
3    d
Name: column_name, dtype: object

In [120]: list(grouped.get_group(1).loc[:,"column_name"])
Out[120]: ['a', 'd']

In [121]: list(grouped.get_group(1).loc[:,["column_name"]])
Out[121]: ['column_name']

有人能告诉我发生了什么事吗?这对我来说绝对很奇怪。问题是来自数据帧、以list作为参数的loc还是list函数?在


Tags: 数据nameingetgroupcolumnoutloc
1条回答
网友
1楼 · 发布于 2024-09-27 17:55:05

我想原因是

grouped.get_group(1).loc[:,"column_name"] 

返回一系列while

^{pr2}$

返回一个数据帧。在

当您执行list(Series)时,它返回该系列的值,而当您执行list(Dataframe)时,它返回df的列,在本例中为“column_name”。在

相关问题 更多 >

    热门问题