熊猫填充日期列

时间:2018-06-06 21:17:14

标签: python pandas numpy

我正在尝试使用静态日期填充DataFrame列(整列),但必须是变量。我可以使用numpy填写数字,但我无法填写列的日期:

currdate = ['3/31/2018'] #this is what I need filled in
missing = ['GREEN', 'YELLOW', 'RED', 'BLUE', 'PINK']

第1节:

A = ({'PERIOD DT':                     pd.to_datetime(currdate),
           'TEAM':                              missing,
           'REGION':                            ['NA'],
           'SECTOR':                            ['OTHER'],
           'REVENUE':                           [0]})

任何人都可以解释为什么上面的代码没有在每个列中填写?对于除“TEAM'”之外的每个列,这些值仅填充DataFrame中的第一行数据。

DF = pd.DataFrame.from_dict(A, orient='index')
DF= DF.transpose()

第2节:

zeroVal = [0]
n = len(DF)
DF['SECTOR'] = 'OTHER'
DF['REGION'] = 'NA'
DF.loc[:,'REVENUE'] = np.zeros(n)

我尝试使用以下内容来填写“' currdate'我正在使用' PERIOD DT'专栏,但我无法让它工作:

DF['PERIOD DT'] = pd.to_datetime(currdate)

不告诉每一栏在第2部分中做什么,我得到以下输出: 我希望列中的所有值都填充在每列中,除了我使用引用列表的变量填充的TEAM

    PERIOD DT    TEAM    REGION    SECTOR    REVENUE
0   2018-03-31   GREEN   NA        OTHER     0.00
1       NONE     YELLOW  NONE      NONE      NONE
2       NONE     RED     NONE      NONE      NONE
3       NONE     BLUE    NONE      NONE      NONE
4       NONE     PINK    NONE      NONE      NONE

我的预期输出:

    PERIOD DT    TEAM    REGION    SECTOR    REVENUE
0   2018-03-31   GREEN   NA        OTHER     0.00
1   2018-03-31   YELLOW  NA        OTHER     0.00
2   2018-03-31   RED     NA        OTHER     0.00
3   2018-03-31   BLUE    NA        OTHER     0.00
4   2018-03-31   PINK    NA        OTHER     0.00

问题:1,为什么我不能得到变量/ DF' A'根据我提供的信息填写每一栏 2如何手动填写列中的日期(通过变量)' PERIOD DT'?

1 个答案:

答案 0 :(得分:0)

您的missing列表包含5个元素,而其他列表只有1.您为数据帧传递的dict中的所有列表都应具有相同数量的元素。考虑以下方法。

A = pd.DataFrame({'PERIOD DT': list(pd.to_datetime(currdate)) * len(missing),
           'TEAM': missing,
           'REGION': ['NA']* len(missing),
           'SECTOR': ['OTHER'] * len(missing),
           'REVENUE': [0] * len(missing)
})

输出:

PERIOD DT   TEAM    REGION  SECTOR  REVENUE
0   3/31/2018   GREEN   NA  OTHER   0
1   3/31/2018   YELLOW  NA  OTHER   0
2   3/31/2018   RED NA  OTHER   0
3   3/31/2018   BLUE    NA  OTHER   0
4   3/31/2018   PINK    NA  OTHER   0