Python 如何在数据帧上使用apply函数来检索特定列?

Python 如何在数据帧上使用apply函数来检索特定列?,python,pandas,dataframe,pandas-datareader,pandas-apply,Python,Pandas,Dataframe,Pandas Datareader,Pandas Apply,我编写了以下代码来下载数据集并在数据帧上应用EDA函数 url = "https://query1.finance.yahoo.com/v7/finance/download/RELIANCE.BO?period1=1577110559&period2=1608732959&interval=1d&events=history&includeAdjustedClose=true" r = requests.get(url) open(stock

我编写了以下代码来下载数据集并在数据帧上应用EDA函数

url = "https://query1.finance.yahoo.com/v7/finance/download/RELIANCE.BO?period1=1577110559&period2=1608732959&interval=1d&events=history&includeAdjustedClose=true"
r = requests.get(url)
open(stock+'.csv','wb').write(r.content)  
ril = pd.read_csv(r'RELIANCE.csv',date_parser='Date')
ril.head(10)
在这里,我想通过apply列检索
Close
列,以便练习
df.apply()
函数

def close(stock):
    print(stock.iloc[:,6])
ril.apply(close)
但是代码给出了一个
索引错误

IndexingError                             Traceback (most recent call last)
<ipython-input-21-9fad7d447930> in <module>()
----> 1 asp.apply(close)

7 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _has_valid_tuple(self, key)
    698         for i, k in enumerate(key):
    699             if i >= self.ndim:
--> 700                 raise IndexingError("Too many indexers")
    701             try:
    702                 self._validate_key(k, i)

IndexingError: Too many indexers
索引错误回溯(最近一次调用)
在()
---->1 asp.应用(关闭)
7帧
/usr/local/lib/python3.6/dist-packages/pandas/core/index.py in\u has\u valid\u tuple(self,key)
698对于枚举中的i,k(键):
699如果i>=self.ndim:
-->700 raise IndexingError(“索引器太多”)
701尝试:
702自我验证密钥(k,i)
索引错误:索引器太多
是否可以使用
df.apply()
函数来完成

df = pd.read_csv(r'RELIANCE.csv',date_parser='Date')

close1 = df['Close']                                 #standard way of assessing the column
close2 = df.apply(lambda x: x.iloc[4] , axis=1)      #apply function row-wise: take 1
close3 = df.apply(lambda x: x[4]      , axis=1)      # ... take 2
close4 = df.apply(lambda x: x['Close'], axis=1)      # ... take 3

print( np.allclose(close1, close2, equal_nan=True) ) # verify
...
供参考:及


基本上,在您的案例中,您使用
pd.apply
以及索引
df.iloc[:,…]
对数据帧进行了迭代。注意
axis=1
为了在整个回溯后按行应用函数

我已经更新了我的问题迭代以二维数组的形式按行或按元素进行?你到底有什么问题?下面的文档将选项axis=1描述为:“将函数应用于每行”。除此之外,严格来说,数据帧不是2D数组!