获取要在列表中使用的数据框的索引

Get the indicies of a dataframe to use on a list

我正在尝试根据 pandas 的内容提取列表的元素 dataframe.This 可能最好通过一个示例来解释:

假设我有一个名为 a

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

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

Name    Group
A         1
B         1
C         2

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

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

或类似的东西。

我更习惯使用 R 来编码,在这个过程中这个过程会相对简单 - 所以我希望 python 也是如此,但我还没有找到任何可以帮我解决这个问题在python呢。

您可以将其表示为 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']