pandas 使用条件遍历 Dataframe 中的特定列

qij5mzcb  于 2023-05-21  发布在  其他
关注(0)|答案(1)|浏览(151)

我尝试迭代dataframe RCMLocations的一个名为Description的特定列。
当列“Description”的值等于在称为“乌尔蒂莫_data”的另一 Dataframe 中找到的值时,则取 Dataframe “ulimo_data”列“Systememdeelnummer”的值,并将其放置在 Dataframe “RCMLocations”中的新列“ID”中。
然而,使用下面的代码,我不能迭代 Dataframe RCMLocations。我该如何解决这个问题?

beheerobjecten = ultimo_data["Specifieke_omschrijving_beheerobject"].unique()
RCMLocations["ID"] = ""
for i, row in RCMLocations.iterrows:
    RCMLocations["ID"] = ultimo_data.loc[ultimo_data["Specifieke_omschrijving_beheerobject"] == row["Description"], "Systeemdeelnummer"]

下面是 Dataframe 的可再现示例:

RCMLocations = pd.DataFrame({"Description": ["Description 0 Weg, 4,300 tm 16,765 KP Zaandam - Purmerend Noord", "Description 1 Weg, 16,765 tm 34,032 Purmerend Noord - Hoorn Noord", "Description 2 Weg, 50,212 tm 64,565 Middenmeer - Den Oever"]})
uajslkp6

uajslkp61#

除了代码中的 typo 会触发TypeError之外,避免iterrows的一种方法是用途:

d = ultimo_data.set_index("Specifieke_omschrijving_beheerobject")["Systeemdeelnummer"]

RCMLocations["ID"] = RCMLocations["Description"].map(d)

相关问题