Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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 如何从pandas中的频率表中提取数组_Python_Pandas_Numpy - Fatal编程技术网

Python 如何从pandas中的频率表中提取数组

Python 如何从pandas中的频率表中提取数组,python,pandas,numpy,Python,Pandas,Numpy,我有一张熊猫的频率表。我想将每种气味级别的每个类别的频率提取到一个列表中,每个元素都是一个NumPy数组,包含给定气味级别的类别频率计数。如何在不手动指定行和列的情况下执行此操作 这就是我所拥有的: test=df.groupby(['odor', 'class']) test.size() 其结果是: odor class a e 400 c p 192 f p 2160 l e 400 m

我有一张熊猫的频率表。我想将每种气味级别的每个类别的频率提取到一个列表中,每个元素都是一个NumPy数组,包含给定气味级别的类别频率计数。如何在不手动指定行和列的情况下执行此操作

这就是我所拥有的:

test=df.groupby(['odor', 'class'])
test.size()
其结果是:

odor  class
a     e         400
c     p         192
f     p        2160
l     e         400
m     p          36
n     e        3408
      p         120
p     p         256
s     p         576
y     p         576
dtype: int64

请记住,您提供的数据为零。根据你留下的半条线索,我完全在猜测你的数据是什么样子

df = pd.DataFrame(
    {
        'odor': np.random.choice(list('acflmnpsy'), 100),
        'class': np.random.choice(list('ep'), 100),
        'frequency': np.random.choice(np.arange(60, 241), 100)
    }
)

df.groupby(['odor', 'class']).frequency.apply(np.array)

odor  class
a     e                             [170, 178, 67, 97]
      p                                 [183, 165, 73]
c     e                            [106, 163, 71, 171]
      p                       [72, 224, 112, 196, 134]
f     e               [134, 67, 190, 226, 74, 62, 107]
      p             [222, 74, 177, 186, 122, 120, 121]
l     e                   [81, 97, 124, 181, 101, 185]
      p                            [182, 136, 77, 190]
m     e                 [217, 121, 141, 102, 171, 106]
      p              [127, 178, 127, 72, 209, 63, 167]
n     e                   [166, 121, 79, 117, 130, 92]
      p                            [71, 136, 219, 155]
p     e            [118, 193, 147, 219, 154, 130, 169]
      p             [69, 162, 138, 193, 236, 144, 192]
s     e                                [105, 139, 143]
      p                        [72, 149, 186, 220, 63]
y     e            [143, 134, 102, 144, 186, 207, 181]
      p        [177, 215, 190, 158, 203, 157, 85, 172]
Name: frequency, dtype: object

这就是你要找的吗

pivot_表(索引=['Class'],列=['Odor'],值=['freq'],aggfunc='sum')