我正在尝试根据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中的问题呢。
答案 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']