如何重命名 pandas df 中的空白列名称?
How do I rename a blank column name in pandas df?
我正在使用 pandas_datareader 到 return 的股票价格。该文档指出 pandas 数据框是由 pandas_datareader 编辑的 return。问题是数据框 return 带有空白列名。这意味着在我重命名该列之前,我(相信这是真的)无法添加另一列。不管怎样,这是我的代码:
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')
目前 return:
One Symbol
Two Symbols
我尝试了各种方法,但似乎无法重命名包含价格的列。我还尝试重命名日期列并将其作为索引。没有运气!我想知道将数据粘贴到 table 中然后取回是否更好。 Pandas 数据框对于简单的操作来说似乎过于复杂。
我有 python 3.5.3 和最新的 pandas。
评论中发布的 AttributeError 很重要——你有一个 Series,相当于一个列,而不是一个 DataFrame。
main_df.to_frame()
将 return 一个数据框,然后您可以重命名其中的列并向其中添加新列。
我正在使用 pandas_datareader 到 return 的股票价格。该文档指出 pandas 数据框是由 pandas_datareader 编辑的 return。问题是数据框 return 带有空白列名。这意味着在我重命名该列之前,我(相信这是真的)无法添加另一列。不管怎样,这是我的代码:
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')
目前 return: One Symbol
Two Symbols
我尝试了各种方法,但似乎无法重命名包含价格的列。我还尝试重命名日期列并将其作为索引。没有运气!我想知道将数据粘贴到 table 中然后取回是否更好。 Pandas 数据框对于简单的操作来说似乎过于复杂。
我有 python 3.5.3 和最新的 pandas。
评论中发布的 AttributeError 很重要——你有一个 Series,相当于一个列,而不是一个 DataFrame。
main_df.to_frame()
将 return 一个数据框,然后您可以重命名其中的列并向其中添加新列。