gpt4 book ai didi

python - 合并两个 DataFrame 的函数

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

我想编写一个函数来合并来自两个数据框国家/地区和任何给定年份的排放量的数据。

  def mergeByYear(year):
yearString = str(year)
result = pd.merge(countries, emissions[yearString], on='Country Code')
return

用户输入年份,函数根据年份合并数据框。我的数据样本是:

Country Name    Country Code    Indicator Name  Indicator Code  1960    1961    1962    1963    1964    1965    
0 Aruba ABW CO2 emissions (metric tons per capita) EN.ATM.CO2E.PC NaN NaN NaN NaN NaN NaN

但是上面的函数给了我一个错误“无法将 DataFrame 与类型的实例合并”

谁能告诉我如何解决这个问题?

最佳答案

没有太多有关数据的信息,这就是我可以解决的问题。我认为问题出在 emissions[yearString] 使用单括号而不是双括号。给定一些随机生成的 DataFrame,我可以执行以下操作:

import numpy as np
import pandas as pd

首先,我创建了两个随机数 DataFrame,其中一些可能是您实例中的字符串,但这只是一个快速替代品。

df = pd.DataFrame(np.arange(0, 100, 5).reshape(4,5), columns = ['Year',2,3,4,5])

创建了一列作为伪排放列。

df2 = pd.DataFrame(np.arange(0, 200, 10).reshape(4,5), columns = ['Emissions',7,8,9,10])

将年份数据添加到第二个 DataFrame,然后我们可以使用它与第一个 DataFrame 合并

df2['Year'] = [0, 25, 50, 75] #Used to add year data to the second data Frame

我调用了我想要合并的特定列,包括年份和伪排放列。我在这里使用双括号来调用列列表,以便合并仍然可以访问两个 DataFrame 中的“年份”。

pd.merge(df, df2[['Year', 'Emissions']], on = 'Year')

如果数据帧的分割方式与此不同,请告诉我,我会尝试更改它,以便它对您的解决方案更有意义。

关于python - 合并两个 DataFrame 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53889229/

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