Python 在列表中按(iloc)名称选择列
尝试获取要按名称筛选的数据帧的内容Python 在列表中按(iloc)名称选择列,python,pandas,Python,Pandas,尝试获取要按名称筛选的数据帧的内容 X = df.iloc[108:, 1:48] y = df.iloc[108:, -1] #108 to just shy of last #training tx = X.iloc[0:int(split), 1:48] df1 = df.iloc[:, ['date', 'CPIAUCSL']] 不起作用 File "<ipython-input-77-c23d3211e2bf>", line 51 df1 = df.loc[:,
X = df.iloc[108:, 1:48]
y = df.iloc[108:, -1]
#108 to just shy of last
#training
tx = X.iloc[0:int(split), 1:48]
df1 = df.iloc[:, ['date', 'CPIAUCSL']]
不起作用
File "<ipython-input-77-c23d3211e2bf>", line 51 df1 = df.loc[:, ['date', 'CPIAUCSL']]df1 = df.loc[:, ['date', 'CPIAUCSL']] ^ SyntaxError: invalid syntax –
产生
date CPIAUCSL
0 1991-01-31 134.700
1 1991-02-28 134.800
2 1991-03-31 134.800
看起来您正在尝试根据第1列(日期)和第2列(CPIAUCSL)进行切片 df.iloc仅在列和行indexnumber上切片,而不在列名上切片。要基于名称进行切片,应使用df.loc。在你的最后一个例子中:
df1 = df.loc[:, ['date', 'CPIAUCSL']]
如果你能提供更多关于你到底想要什么以及你的数据是什么样子的信息,我们可以为你提供更多的帮助 你的问题是什么?什么是
df
?你说不起作用是什么意思?
这是什么意思:y=df.iloc[108:,-1]
?这当然不是要比上一次差108秒。它表示第108行之后的和最后一列
。请提供一个答案。我想这正是它的意思。第108行之后,最后一列我的问题是如何按列搜索,例如df1=df.iloc[:,['date',2]]或df1=df.iloc[:,['date',CPIAUCSL']]文件“”,第51行df1=df.loc[:,['date',CPIAUCSL']]df1=df.loc[:,['date',CPIAUCSL']]^SyntaxError:无效语法
df1 = df.loc[:, ['date', 'CPIAUCSL']]