Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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 使用列值从DataFrame获取数据_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用列值从DataFrame获取数据

Python 使用列值从DataFrame获取数据,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用pandas.DataFrame.itertuples解析excel工作表,它将在每次迭代中为我提供pandas.DataFrame。考虑熊猫。在每个迭代中返回的数据文件如上所示。 现在关闭每个数据帧Pandas(Index='dog',num_legs=4,num_wings=0)我想使用关键字num_legs访问这些值,但是使用相同的关键字后,我得到以下异常 >>> df = pd.DataFrame({'num_legs': [4, 2], 'num_wings

我正在使用
pandas.DataFrame.itertuples
解析excel工作表,它将在每次迭代中为我提供
pandas.DataFrame
。考虑<代码>熊猫。在每个迭代中返回的数据文件如上所示。

现在关闭每个数据帧
Pandas(Index='dog',num_legs=4,num_wings=0)
我想使用关键字
num_legs
访问这些值,但是使用相同的关键字后,我得到以下异常

>>> df = pd.DataFrame({'num_legs': [4, 2], 'num_wings': [0, 2]},
...                   index=['dog', 'hawk'])
>>> df
      num_legs  num_wings
dog          4          0
hawk         2          2
>>> for row in df.itertuples():
...     print(row)
...
Pandas(Index='dog', num_legs=4, num_wings=0)
Pandas(Index='hawk', num_legs=2, num_wings=2)
是否有人可以帮助您直接使用列标题从数据框中检索数据。

此处:

TypeError: tuple indices must be integers, not str
在这里:


您可以使用
iterrows()

O/p:


您可以使用
iterrows()

O/p:


我在使用变量时也遇到了同样的错误

dog
num_legs     4
num_wings    0
Name: dog, dtype: int64
4
hawk
num_legs     2
num_wings    2
Name: hawk, dtype: int64
2
v = 'num_legs'
for row in df.itertuples():
    print(row[v])

TypeError: tuple indices must be integers or slices, not str
使用
df.itertuples()
并将属性名称用作变量

dog
num_legs     4
num_wings    0
Name: dog, dtype: int64
4
hawk
num_legs     2
num_wings    2
Name: hawk, dtype: int64
2
v = 'num_legs'
for row in df.itertuples():
    print(row[v])

TypeError: tuple indices must be integers or slices, not str

最后,
df.itertuples()
df.iterrows()快
我在使用变量时遇到了同样的错误

dog
num_legs     4
num_wings    0
Name: dog, dtype: int64
4
hawk
num_legs     2
num_wings    2
Name: hawk, dtype: int64
2
v = 'num_legs'
for row in df.itertuples():
    print(row[v])

TypeError: tuple indices must be integers or slices, not str
使用
df.itertuples()
并将属性名称用作变量

dog
num_legs     4
num_wings    0
Name: dog, dtype: int64
4
hawk
num_legs     2
num_wings    2
Name: hawk, dtype: int64
2
v = 'num_legs'
for row in df.itertuples():
    print(row[v])

TypeError: tuple indices must be integers or slices, not str

最后,
df.itertuples()
df.iterrows()快

接受这一点,因为我使用itertuples在数据帧上进行迭代。我尝试在使用
read\u csv
读取csv时使用相同的方法,但是我在csv中注释后的第一行未被视为列名,使用
行[“columnHeader”]时出现异常
虽然这是一个单独的问题,您应该提出,但作为提示,请使用
标题
参数。尝试使用
标题
参数,不幸的是,csv除了列标题之外还有额外的列数据,因此在使用
header
参数进行解析时fails@darth_coder那我建议你再问一个问题,通过正确解释仅列出此问题。接受此问题,因为我使用itertuples在数据帧上进行迭代。当使用
read_csv
读取csv时,我尝试使用相同的方法,但是我在csv中注释后的第一行未被视为列名,使用
行[“columnHeader”]时出现异常
虽然这是一个单独的问题,您应该提出,但作为提示,请使用
标题
参数。尝试使用
标题
参数,不幸的是,csv除了列标题之外还有额外的列数据,因此在使用
header
参数进行解析时fails@darth_coder那我建议你再问一个问题,只列出这个问题并进行适当的解释。这个答案也是正确的,我现在在编码时使用
iterrows
,而不是
itertuples
,因为访问数据的方式模仿数组索引操作符。这个答案也是正确的,我现在在编码时使用
iterrows
,而不是
itertuples
因为访问数据的方式类似于数组索引操作符。您是如何评估得出
itertuples
iterrows
快的结论的?您可以检查这一点,上周我已经对大数据帧进行了测试。您是如何评估得出
itertuples
快的结论的
iterrows
?您可以检查这一点,上周我用大数据帧对其进行了测试