我想创建一个文档列表。当“公司”和“日期”相同时,每个文档都是“文本”列中的组合语句。
为了说明,我有一个数据框:
df = pd.DataFrame(np.array([['28/02/2017', 'Apple', "A"], ['28/02/2017', 'Apple', "B"], ['30/03/2017', 'Apple', "C"],
['30/03/2017', 'Apple', "D"], ['30/02/2017', 'Amazon', "E"]]),
columns=['date', 'company', 'text'])
我想要的输出是带有以下句子的列表:
documents = ["AB", "CD", "E"]
到目前为止,我考虑过创建一个“组”列,该列将为公司和日期组合分配一个组号。根据组号,我可以对文本求和。
我尝试创建一个分配这些组号的函数:
def label_groups(x, count):
if x['date'] == x['company']:
return count
else:
count = count+1
df['group'] = df.apply(lambda x: label_groups(x, 0), axis=1)
但是这行不通(每行返回“ None”)。
也许这是一个不必要的复杂方法,并且有一种更简单的方法来实现所需的输出?