繁体   English   中英

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

[英]How can I reference the key in the Pandas dataframes within that dictionary?

我有一本字典,其中放入了几个数据框(此时全部相同)。 我正在尝试将数据添加到每个数据框(会计年度)的同一列中,该列对应于可调用每个数据框的键。 我分配的关键字是会计年度。 但是,当我尝试使用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])

似乎不需要在一个循环中创建dict键和值,然后在另一个循环中添加列名。 相反,您的代码应如下所示

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])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM