如何在该字典中引用 Pandas 数据框中的键?

Posted

技术标签:

【中文标题】如何在该字典中引用 Pandas 数据框中的键?【英文标题】:How can I reference the key in the Pandas dataframes within that dictionary? 【发布时间】:2019-01-17 08:11:51 【问题描述】:

我有一本字典,里面放了几个数据框(此时都相同)。我正在尝试将数据添加到每个数据帧(会计年度)的同一列中,这些数据帧对应于可以调用每个数据帧的键。我分配的键是会计年度。但是,当我尝试使用 dict.items() 时,它会为每个数据框分配相同的值(上一个财政年度)。目标是按财政年度预测收入,我将根据每年的收入将收入分成一个新列。我已将代码简化为以下内容:

import pandas as pd
columns = ['ID','Revenue','Fiscal Year']
ID = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Revenue = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
FY = []
d = 'ID': ID, 'Revenue': Revenue
df = pd.DataFrame(d)
df['Fiscal Year'] = ''
dataframe_dict = 
def df_dict_func(start, end, dataframe):
    date_range = range(start, end + 1)
    for n in date_range:
        dataframe_dict[n] = dataframe
    for key, value in dataframe_dict.items():
        value['Fiscal Year'] = key
df_dict_func(2018, 2025, df)
print(dataframe_dict[2019])

【问题讨论】:

您的预期结果是什么? 【参考方案1】:

似乎没有必要在一个循环中创建字典键和值,然后在另一个循环中添加列名。相反,您的代码应该看起来像这样

import pandas as pd

def df_dict_func(start, end, dataframe):
    date_range = range(start, end + 1)
    dataframe_dict = 
    for n in date_range:
        sub = dataframe.copy()
        sub['Fiscal Year'] = n
        dataframe_dict[n] = sub
    return dataframe_dict


columns = ['ID','Revenue','Fiscal Year']
ID = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Revenue = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
FY = []
d = 'ID': ID, 'Revenue': Revenue
df = pd.DataFrame(d)

df_dict = df_dict_func(2018, 2025, df)

print(df_dict[2019])

【讨论】:

@DJHeels,很高兴为您提供帮助!

以上是关于如何在该字典中引用 Pandas 数据框中的键?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 检查数据框列是不是包含字典中的键:值对

如何根据字典中的键/值增加 Python Pandas DataFrame

用 Pandas 数据框中的行填充嵌套字典

在循环中将字典附加到熊猫数据框

如何根据 pandas 数据框中的数据类型填充 NaN 值?

pandas:如何将字典转换为转置数据框? [复制]