[英]got error while using loc in python pandas
我是 python 的新手,我自己也在学习 pandas。 所以我得到了第一种语法的结果,但没有得到第二种语法的结果。 据我了解,我们将 loc 用于 label。 因此,我们应该能够在括号内提及列名。 你能帮帮我吗?
df1['EdLevel'].value_counts()--this gives the results
df1.loc['EdLevel'].value_counts()---gives error while running.
错误是这样的:
KeyError Traceback (most recent call last)
~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2645 try:
-> 2646 return self._engine.get_loc(key)
2647 except KeyError:
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()
KeyError: 'EdLevel'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-105-bc8968bf3244> in <module>
----> 1 df1.loc['EdLevel'].value_counts()
通常,您提到的第一个语法用于访问列。 但是,您也可以使用df.loc[]
访问列。 它可以如下完成。
import pandas as pd
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
max_speed shield
cobra 1 2
viper 4 5
sidewinder 7 8
df.loc[:,'shield'] # acess entire 'shield' column
cobra 2
viper 5
sidewinder 8
Name: shield, dtype: int64
您还可以访问多个列。 df.loc[:,['shield','max_speed']]
但您不能在访问多个列时使用 value_counts() 方法,因为它返回 dataframe 而不是系列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.