gpt4 book ai didi

python - 匹配 2 个数据帧之间的值并使用用户定义的函数进行更新

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:38 26 4
gpt4 key购买 nike

Dataframe1 = IndicatorDF - columns ['Code', 'Name', 'Indicator']

Dataframe2 = IndicatorRSK - columns ['Indicator', 'Code', 'Name']

想要更新提交的 Dataframe1:通过与 Dataframe2 映射的指标,其中 IndicatorDF['Code'] == IndicatorRSK['Code']并将 IndicatorRSK['Indicator'] 值更新为 IndicatorDF['Indicator']

下面的脚本工作正常,但我想更新许多数据帧。我们可以使用用户定义的函数来做到这一点吗?

mappingD = IndicatorDF[['Code', 'Indicator']].set_index('Code')
mappingD.update(IndicatorRSK.set_index('Code'))
IndicatorDF['Indicator'] = mappingD.values

我写了下面的函数,但不起作用,请帮忙。

IndicatorDF = pd.read_excel(r'C:\sunil_plus\dataset\imf\IMFBOP2017\4_Updation2017Apr\IMFBOP2017.xlsx', sheetname = 'Indicator')
IndicatorDF['Indicator'] = ''

IndicatorRSK = pd.read_csv(r'C:\sunil_plus\dataset\imf\IMFBOP2017\4_Updation2017Apr\Prod_IMFBOP2017\Prod_IMFBOP2017_Indicator.csv', dtype=object)
IndicatorRSK.rename(columns={'Key': 'Indicator'}, inplace=True)

def mapping(resultDF, indexCol, resultCol, mapDF, mapIndex):
mappingD = resultDF[[indexCol, resultCol]].set_index(indexCol)
mappingD.update(mapDF.set_index(mapIndex))
resultDF[resultCol] = mappingD.values
return

mapping('IndicatorDF', 'Code', 'Indicator', 'IndicatorRSK', 'Code') # passing data frame name and field name

IndicatorDF.to_csv(r'C:\sunil_plus\dataset\imf\IMFBOP2017\4_Updation2017Apr\Prod_IMFBOP2017\mapped.csv', index=False)

最佳答案

当您传递对象时,从数据帧中删除撇号。希望这会起作用映射(IndicatorDF,'代码','指标',IndicatorRSK,'代码')

关于python - 匹配 2 个数据帧之间的值并使用用户定义的函数进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45397673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com