【问题标题】:How can I access a row by its index using pandas itertuples() methode?如何使用 pandas itertuples() 方法通过索引访问一行?
【发布时间】:2022-01-19 21:51:34
【问题描述】:

这是我需要从 DataFrame df 访问某个元组的代码。你能帮我解决这个问题吗,因为我找不到关于这个问题的任何答案。

import pandas as pd
import openpyxl
    df_sheet_index = pd.read_excel("path/to/excel/file.xlsx")
    df = df_sheet_index.itertuples()
    for tuple in df:
        print(tuple)

这是输出

Pandas(Index=0, _1=nan, _2=nan, _3=nan, _4=nan, _5=nan, _6=nan, _7=nan, _8=nan, _9=nan, _10=nan, _11=nan, _12=nan, _13=nan, _14=nan, _15=nan, _16=nan, _17=nan, _18=nan, _19=nan, _20=nan, _21=nan, _22=nan)
Pandas(Index=1, _1=nan, _2=nan, _3=nan, _4=nan, _5=nan, _6=nan, _7=nan, _8=nan, _9=nan, _10=nan, _11=nan, _12=nan, _13=nan, _14=nan, _15=nan, _16=nan, _17=nan, _18=nan, _19=nan, _20=nan, _21=nan, _22=nan)
Pandas(Index=2, _1=nan, _2=nan, _3=nan, _4=nan, _5=nan, _6=nan, _7=nan, _8=nan, _9=nan, _10=nan, _11=nan, _12=nan, _13=nan, _14=nan, _15=nan, _16=nan, _17=nan, _18=nan, _19=nan, _20=nan, _21=nan, _22=nan)
...

【问题讨论】:

  • 你想做什么?可能有一种更简单、更有效的方法
  • 你想要什么?查找与特定值匹配的行?
  • 正如我所说,我试图通过提供它的索引来打印一个元组

标签: python pandas dataframe


【解决方案1】:

编辑:作为一般规则,您应该使用 pandas 内置函数在内部进行搜索,而不是对其进行迭代。它更高效、更易读。
但如果你真的想访问元组:

target_index= 10
for tu in df.itertuples():
    if tu[0] == target_index:
        print(tu)

在更一般的视图中,这是一个常规元组,因此您可以通过其位置访问每个元素。索引将是 tuple[0] 然后你第一列 tuple[1],第二个 tuple[2] 等等。

注意:不要使用 tuple 作为变量名,这是 Python 中元组类型的保留名称,它可能会产生问题(在不是一个好习惯)

【讨论】:

  • 感谢您的快速回复。我已经编辑了代码。我想做的是通过提供它的索引来访问一个元组,但我完全可以弄清楚如何去做。我想通过提供您在元组开头看到的索引来遍历这些元组
  • 我仍然认为你应该使用 DataFrame 而不是元组,因为它很难使用。但是,如果这是您想要的,您可以通过 tuple[0] 访问元组索引并对其进行 if 语句。查看我的更新答案
  • 非常感谢,我认为这会有所帮助。我会尝试将此应用于我的代码并告诉你
【解决方案2】:

如果您尝试在特定位置获取元素。你可以使用 .iloc() 它需要两个 par 行和列

df.iloc[-1]["column"]

这将获取该列的最后一行元素 对于 df.loc["row","column"]
df.loc[[]] 返回一个 df 而 df.loc[] 返回一个系列

【讨论】:

  • 感谢您的回复,但这不是我想要做的
猜你喜欢
  • 2020-06-30
  • 2018-12-09
  • 1970-01-01
  • 2019-02-07
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多