Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 如何通过包含列表变量的字段创建DataFrame.groupby_Python_List_Pandas_Grouping - Fatal编程技术网

Python 如何通过包含列表变量的字段创建DataFrame.groupby

Python 如何通过包含列表变量的字段创建DataFrame.groupby,python,list,pandas,grouping,Python,List,Pandas,Grouping,我有一个这样的数据框 import pandas as pd df = pd.DataFrame({'key1':pd.Series(data = ['a','b','c','d'], index = [0,1,2,3]), 'key2':pd.Series(data = [3,4,2,3],index = [0,1,2,3]), 'key3':pd.Series(data = [0.3,0.5,0.3,0.3],index = [0,1,2,3]), 'key4':pd.Series(data

我有一个这样的数据框

import pandas as pd
df = pd.DataFrame({'key1':pd.Series(data = ['a','b','c','d'], index = [0,1,2,3]), 'key2':pd.Series(data = [3,4,2,3],index = [0,1,2,3]), 'key3':pd.Series(data = [0.3,0.5,0.3,0.3],index = [0,1,2,3]), 'key4':pd.Series(data = [[1,2,3],[4,3,6],[1,2,3],[1,2]], index = [0,1,2,3])})
我想做:

df.groupby('key4').describe()
但这是一个错误


我的目的是创建键4中具有类似值的组。您可以首先将该列转换为字符串,然后描述:

df.groupby(df.key4.astype(str)).describe()

不能按任何包含不可损坏类型的列进行分组,列表就是其中之一,例如,如果执行了
df.groupby('key4')。head()
会产生错误:

TypeError:不可损坏的类型:“列表”

如果您使用元组作为数据,则可以按该列分组,您可以通过执行以下操作进行转换:

在[454]中:

df['key4'] = df['key4'].apply(lambda x: tuple(x))
df
Out[454]:
  key1  key2  key3       key4
0    a     3   0.3  (1, 2, 3)
1    b     4   0.5  (4, 3, 6)
2    c     2   0.3  (1, 2, 3)
3    d     3   0.3     (1, 2)
然后,您可以通过该列调用对其进行分组
描述

In [455]:

df.groupby('key4').describe()
Out[455]:
                     key2  key3
key4                           
(1, 2)    count  1.000000   1.0
          mean   3.000000   0.3
          std         NaN   NaN
          min    3.000000   0.3
          25%    3.000000   0.3
          50%    3.000000   0.3
          75%    3.000000   0.3
          max    3.000000   0.3
(1, 2, 3) count  2.000000   2.0
          mean   2.500000   0.3
          std    0.707107   0.0
          min    2.000000   0.3
          25%    2.250000   0.3
          50%    2.500000   0.3
          75%    2.750000   0.3
          max    3.000000   0.3
(4, 3, 6) count  1.000000   1.0
          mean   4.000000   0.5
          std         NaN   NaN
          min    4.000000   0.5
          25%    4.000000   0.5
          50%    4.000000   0.5
          75%    4.000000   0.5
          max    4.000000   0.5

请描述给出一个错误,您正在按“key4”分组,其中包含作为元素的列表,首先,这对熊猫来说有点奇怪,其次,您希望得到什么样的输出。当我运行您的代码时,它会生成一个空df,可能是因为它不能按该列进行groupby。此外,按包含不能散列的值的列进行groupby也有点毫无意义,这对于groupby对象上的操作是必需的。如果您不是将元组列为值,而是将元组作为值,那么它将与元组一起工作。谢谢