我有一个Excel工作表,我将其作为Coursera课程的一部分使用,具有以下结构:
我尝试使用以下代码创建一个pandas日期框架,其中我设置了index_col = 4和parse_cols = [4,6]并且它失败了。
def get_recession_start():
'''Returns the year and quarter of the recession start time as a
string value in a format such as 2005q3'''
df1 = pandas.read_excel('gdplev.xls',
header=None,
skiprows=220,
index_col=4,
names=['Quarter', 'GDP'],
parse_cols=[4,6])
return df1
get_recession_start()
为什么我无法选择特定列来构建数据框并将其中一个设置为索引?
我收到的错误消息是:
我使用的是Python 3和Pandas 0.18.1
感谢帖子中的答案。
def get_recession_start():
'''Returns the year and quarter of the recession start time as a
string value in a format such as 2005q3'''
df1 = pd.read_excel('gdplev.xls',
header=None,
skiprows=220,
index_col=0,
names=['GDP'],
parse_cols=[4,6])
df1.index.name = 'Quarter'
return df1
print(get_recession_start())
输出是Quater作为索引,GDP是列
GDP
Quarter
2000q1 12359.1
2000q2 12592.5
2000q3 12607.7
2000q4 12679.3
2001q1 12643.3
答案 0 :(得分:1)
将index_col更改为0
df1 = pandas.read_excel('gdplev.xls', header=None, skiprows=220, index_col=0, names=['Quarter', 'GDP'], parse_cols=[4,6])
print df1.index
答案 1 :(得分:1)
好像你必须在parse_cols中包含索引列。由于您提供了names=['Quarter', 'GDP']
,因此除索引列之外还需要2列。您可以使用parse_cols=[4,5,6]
或parse_cols=range(4,7)
测试一下:
def get_recession_start():
'''Returns the year and quarter of the recession start time as a
string value in a format such as 2005q3'''
df1 = pandas.read_excel('gdplev.xls',
header=None,
skiprows=220,
index_col=0,
names=['Quarter', 'GDP'],
parse_cols=[4,5,6])
return df1
print(get_recession_start())