Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据框
Python - Pandas - Import Excel file, iterate through each row, add new value, and add to dataframe
我有一个 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)
您不想使用 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']
的每一行,并将每一行的值作为其参数。
我有一个 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)
您不想使用 for d in df:
Pandas 有一种方法可以将函数应用于数据帧的每一行并通过 apply
函数
如果您适当地重命名数据框的列,
df['Ab_keywords'] = df['Abstract'].apply(lambda text: keywords(text, ratio=0.15, split=True))
应该可以。
此处 lambda 函数应用于 df['Abstract']
的每一行,并将每一行的值作为其参数。