创建新行并将其添加到空数据框中

时间:2019-05-30 14:25:27

标签: python pandas dataframe

我有开始日期和结束日期的数据框(df1)像这样。

Start Date      End Date 
1875-01-01      1877-09-30
1881-07-01      1886-03-31
1888-01-01      1889-06-30
1890-10-01      1890-12-31
.
.
.
2016-10-01      2018-12-31

我有一组不同的数据帧(df2),其中包含每日时间序列。例如,

Date          Value 
1875-01-01    7.21
1875-01-02    7.23
1875-01-03    7.22
1875-01-04    7.12
.
.
.
2018-12-31    3.12

我将日期设置为df2的索引。

我正在尝试使用df1建立基于df2的统计信息表。 首先,我创建了一个空数据框以添加值。例如,

outputtable = pd.DataFrame(columns = ('Max','Min','Ave'))
for i in df1.index:
    try:
        df3 = df2.loc[df1['Start Date'][i]:df1['End Date'][i]]
        minimum = df3['Value'].min()
        maximum = df3['Value'].max()
        average = df3['Value'].mean()
        outputtable[-1]= [minimum, maximum, average]

    except:
        pass

我之所以使用try是因为df1中的某些日期不在df2中。在这种情况下,我希望代码忽略并移至下一组日期。

我希望代码遍历df1的每一行并进行统计(最小值,最大值和均值)并将其放入输出表中以进行进一步的计算。到目前为止,上面的代码无法正常工作。帮助将不胜感激。

所需的输出

Start Date      End Date     Min  Max  Ave 
1875-01-01      1877-09-30   7    8    7.2
1881-07-01      1886-03-31   1    4    2.2
1888-01-01      1889-06-30   2    6.5  3
1890-10-01      1890-12-31   3    5    4.2
.
.
.
2016-10-01      2018-12-31   1    2    1.7

0 个答案:

没有答案