Python-Pandas-导入Excel文件,遍历每一行,添加新值,然后添加到数据框

时间:2019-06-08 02:56:51

标签: python excel pandas loops import-from-excel

我有一个带有项目代码和摘要字段的Excel文件,因此我可以在摘要上运行一个简单的文本摘要程序,然后将其添加到数据框中。

我的Excel数据集如下:

[Proj_Number] | [Abstract]

JJF-123          | Diabetes is a serious chronic condition.  
JFR-223          | Cardiovascular disease is also a chronic condition. 
JF3-334          | Don't forget about asthma and how much it sucks. 

一旦我导入了数据,我想应用我的文本汇总器并得到它:

[Proj_Number] | [Abstract]                        [Ab_keywords]

JJF-123       | Diabetes is a chronic condition.  |Diabetes, chronic condition                                                                 
JFR-223       | COPD is a also chronic condition. | COPD, chronic condition
JF3-334       | Don't forget about asthma too.    | asthma, forgot

我知道我的代码是错误的,但是我只是不知道如何遍历每一行,如何从摘要中获取摘要关键字,将其添加到数据框并导出。

from gensim.summarization.summarizer import summarize
from gensim.summarization import keywords
import pandas as pd

dataset = pd.read_excel('abstracts.xlsx',encoding="ISO-8859-1")
df = pd.DataFrame(dataset)
cols = [1,2]
df = df[df.columns[cols]]

for d in df:
d =  keywords(d, ratio=0.15, split=True))
print(d)

1 个答案:

答案 0 :(得分:1)

您不想使用for d in df:

遍历df中的每一行。

Pandas可以将功能应用于数据帧的每一行,并通过apply函数返回一系列

提供适当重命名数据框的列的信息,

df['Ab_keywords'] = df['Abstract'].apply(lambda text: keywords(text, ratio=0.15, split=True))

应该工作。

在这里,lambda函数将应用于df['Abstract']的每一行,并为每一行提供值作为其参数。