获取要在列表中使用的数据帧的标记

时间:2015-06-30 21:48:33

标签: python python-2.7 indexing pandas

我正在尝试根据pandas数据帧的内容提取列表的元素。这可能最好通过一个例子来解释:

假设我有一个名为

的列表列表
a = [['Lazy', 'Brown', 'Fox'], ['Jumps', 'Over'], ['Big', 'Blue', 'Sea']]

和一个名为df的pandas数据框,格式为

Name    Group
A         1
B         1
C         2

我想根据a中的Group变量索引列表df。所以我会得到一个结果

[['Lazy', 'Brown', 'Fox', 'Jumps', 'Over'], ['Big', 'Blue', 'Sea']]

或类似的东西。

我更习惯使用R代码,其中这个过程相对简单 - 所以我希望在python中也是如此,但我还没有发现任何可以帮助我解决这个问题的方法python中的问题呢。

1 个答案:

答案 0 :(得分:1)

您可以将其表达为groupby/agg operation

import pandas as pd
a = [['Lazy', 'Brown', 'Fox'], ['Jumps', 'Over'], ['Big', 'Blue', 'Sea']]
df = pd.DataFrame({'Name':list('ABC'), 'Group':[1,1,2]})
df['a'] = a
print(df.groupby(['Group'])['a'].sum())

产量

Group
1    [Lazy, Brown, Fox, Jumps, Over]
2                   [Big, Blue, Sea]
Name: a, dtype: object

通过求和进行聚合是因为两个列表的总和是一个连接列表:

In [322]: ['Lazy', 'Brown', 'Fox'] + ['Jumps', 'Over']
Out[322]: ['Lazy', 'Brown', 'Fox', 'Jumps', 'Over']