Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从要打印的数据框中选择列而不寻址其名称_Python_Pandas_Dataframe_Plot - Fatal编程技术网

Python 如何从要打印的数据框中选择列而不寻址其名称

Python 如何从要打印的数据框中选择列而不寻址其名称,python,pandas,dataframe,plot,Python,Pandas,Dataframe,Plot,我需要从一个列中绘制数据,并且我不想使用它的名称 问题是,我想让用户输入以定制分析,这意味着我将始终为列获取不同的名称,因此必须手动更改绘图的名称。有什么可能的解决方案使它自动化吗 我试过了 stocks\u ret.iloc[0,1]。绘图(figsize=(16,8),grid=True) 我也尝试过使用.iloc,但失败了 AttributeError:'numpy.float64'对象没有属性'plot' 试着改变 stocks_ret.iloc[0,1].plot(figsize=

我需要从一个列中绘制数据,并且我不想使用它的名称

问题是,我想让用户输入以定制分析,这意味着我将始终为列获取不同的名称,因此必须手动更改绘图的名称。有什么可能的解决方案使它自动化吗

我试过了

stocks\u ret.iloc[0,1]。绘图(figsize=(16,8),grid=True)
我也尝试过使用
.iloc
,但失败了

AttributeError:'numpy.float64'对象没有属性'plot'

试着改变

stocks_ret.iloc[0,1].plot(figsize=(16,8), grid=True)

解释
iloc
使用语法
my\u dataframe.iloc[row\u range,column\u range]
从数据帧中选择要提取的行和列索引。例如,通过编写
my_dataframe.iloc[0:2,0:4]
,您要求从第一行到第三行以及从第一列到第五列提取值(请记住,在Python中,索引从0开始)

类似地,通过编写
my_dataframe.iloc[2,3]
,您会询问第三行第四列的
my_dataframe
中的具体值是什么。这就是您在代码中所做的。由于它返回单个值,而不是pandas series/dataframe,因此它没有plot属性,从而导致您看到的错误

为了选择整列,需要传递一个与整列长度相等的范围,而不是单个索引。
符号可用作简写,以便
my_dataframe.iloc[:,3]
返回第四列中所有值的序列

试试换衣服

stocks_ret.iloc[0,1].plot(figsize=(16,8), grid=True)

解释
iloc
使用语法
my\u dataframe.iloc[row\u range,column\u range]
从数据帧中选择要提取的行和列索引。例如,通过编写
my_dataframe.iloc[0:2,0:4]
,您要求从第一行到第三行以及从第一列到第五列提取值(请记住,在Python中,索引从0开始)

类似地,通过编写
my_dataframe.iloc[2,3]
,您会询问第三行第四列的
my_dataframe
中的具体值是什么。这就是您在代码中所做的。由于它返回单个值,而不是pandas series/dataframe,因此它没有plot属性,从而导致您看到的错误


为了选择整列,需要传递一个与整列长度相等的范围,而不是单个索引。
符号可用作简写,以便
my_dataframe.iloc[:,3]
返回第四列中所有值的序列

.iloc
不会解决您的问题,可能只会让问题变得更糟。使用
.iloc
时,用户不仅需要知道列名,还需要知道它在数据帧中的位置。这几乎肯定比只知道列名更糟糕。只需使用一个参数
col
(用户指定的字符串)编写分析函数,然后您就可以在函数内部用
df[col].plot()绘制他们传递的任何字符串。您试图绘制一个值
。iloc
不会解决您的问题,可能只会使问题变得更糟。使用
.iloc
时,用户不仅需要知道列名,还需要知道它在数据帧中的位置。这几乎肯定比只知道列名更糟糕。只需使用一个参数
col
(用户指定的字符串)编写分析函数,然后您就可以在函数内部用
df[col].plot()绘制他们传递的任何字符串。您正在尝试绘制一个值