首页 > 解决方案 > 对更改的列类型应用函数

问题描述

我有 citation.cites 文件包含两列(目标和源)。每个数字都被视为 paper_id

citations = pd.read_csv(
os.path.join(data_dir, "citeseer.cites"),
sep="\t",
header=None,
names=["target", "source"],
)

以下代码在引文数据类型为数字时运行(即引文文件采用形式

123   654
786   988

)

lass_values = sorted(papers["subject"].unique())
class_idx = {name: id for id, name in enumerate(class_values)}
paper_idx = {name: idx for idx, name in enumerate(sorted(papers["paper_id"].unique()))}
papers["paper_id"] = papers["paper_id"].apply(lambda name: paper_idx[name])
citations["source"] = citations["source"].apply(lambda name: paper_idx[name])
citations["target"] = citations["target"].apply(lambda name: paper_idx[name])
papers["subject"] = papers["subject"].apply(lambda value: class_idx[value])

但是当引文文件采用这种形式时

123    hyt
ytr    657

前面的代码不运行

标签: python-3.x

解决方案


推荐阅读