如何在pandas df中重命名空白列名?

时间:2017-05-11 14:35:45

标签: python-3.x pandas pandas-datareader

我正在使用pandas_datareader来返回股票价格。该文档指出pandas_datareader返回了一个pandas数据帧。问题是返回的数据框带有空白列名称。这意味着直到我重命名列I(相信这是真的)不能添加另一列。无论如何,这是我的代码:

from datetime import datetime, timedelta
from pandas import pandas as pd
from pandas_datareader import data, wb
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter
import matplotlib.pyplot as plt
from matplotlib import style
import datetime as dt 
import numpy as np

style.use('ggplot')
today = dt.date.today()
dtStart = (dt.datetime.strptime("2017-01-01", '%Y-%m-%d'))
dtEnd = (dt.datetime(today.year,today.month,today.day)).isoformat(' ') 

def genGraph(graph_filename):

    dtStart = (dt.datetime.strptime("2015-01-01", '%Y-%m-%d'))
    my_stocks = {'VOD.L'} # Single sumbol.
    # my_stocks = {'VOD.L', {'BP.L'}} # Test multiple symbols.

    main_df = pd.DataFrame()
    df = pd.DataFrame()

    for sym in my_stocks:

        if main_df.empty:
            main_df = (data.get_data_google(sym, dtStart)['Close'])
            main_df.rename(columns = {'' : 'X'}, inplace=True)

            print(main_df.head())

        else:
            main_df = main_df.join((data.get_data_google(sym, dtStart)['Close']), how='outer')
            print(main_df)
    else:
        print('')    
    print(main_df.tail())
    return True
genGraph('OK')

目前返回: One Symbol

Two Symbols

我尝试了各种各样的东西,但似乎无法重命名价格列。我也尝试重命名日期列并将其作为索引。没运气!我想知道将数据粘贴到表中然后将其恢复是否更好。对于简单的操作,Pandas数据框似乎过于复杂。

我有python 3.5.3和最新的pandas。

1 个答案:

答案 0 :(得分:0)

评论中发布的AttributeError非常重要 - 您有一个系列,相当于一个列,而不是一个DataFrame。

main_df.to_frame()

将返回一个数据框,然后您可以重命名该列并将新列添加到。