首页 > 解决方案 > Python Pandas df 问题:“空数据帧的绑定方法 NDFrame.head”

问题描述

我正在为基本日历表构建一个空数据框,然后在一列中填充 pd.date_range 值。问题是数据框在追加后显示为空。这是我的代码:

def date_calendar(table, startdate, enddate, datefreq):

# create a df
df = pd.DataFrame({
        'Year': [],
        'FY Year': [],
        'Quarter': [],
        'MonthNum': [],
        'YearMonth': [],
        'YearMonthShort': [],
        'YearMonthNum': [],
        'Date': [],
    })

# create a date_range specified in function inputs
per1 = pd.date_range(start=startdate,
                         end=enddate, freq=datefreq)

# make the date_range into a series because .append method doesn't work if per1 is not a series
per2 = per1.to_series()

# append series to df
df['Date'].append(per2)
return df

date_calendar(table, startdate='1-1-2019', enddate='6-30-2024', datefreq='D')

我的结果是:

<空DataFrame列的绑定方法NDFrame.head:[Year,FY Year,Quarter,MonthNum,YearMonth,YearMonthShort,YearMonthNum,Date]索引:[]>

标签: pythonpandasdataframe

解决方案


将系列附加到 df 时,您需要将结果分配回df['Date'].

def date_calendar(startdate, enddate, datefreq):

# create a df
    df = pd.DataFrame({
            'Year': [],
            'FY Year': [],
            'Quarter': [],
            'MonthNum': [],
            'YearMonth': [],
            'YearMonthShort': [],
            'YearMonthNum': [],
            'Date': [],
        })

    # create a date_range specified in function inputs
    per1 = pd.date_range(start=startdate,
                             end=enddate, freq=datefreq)

    # make the date_range into a series because .append method doesn't work if per1 is not a series
    per2 = per1.to_series()

    # append series to df
    df['Date'] = df['Date'].append(per2)
    return df

date_calendar(startdate='1-1-2019', enddate='6-30-2024', datefreq='D')

推荐阅读