首页 > 解决方案 > python csv问题-想在loc代码中使用变量

问题描述

我导入了我的 csv 文件,我想在我的 loc 代码中使用变量,例如\

a = 0; b = 1
df.loc[int(a+2),int(2*b-2)]

但它有一个错误
我该如何解决?

标签: pythoncsv

解决方案


似乎您想使用一片 int 数字来选择一条数据。在 pandas.DataFrame 中,您可以使用 df.loc 和 df.iloc 进行索引。

df.loc 允许的输入是:

  • 单个标签,例如 5 或“a”(请注意,5 被解释为索引的标签,而不是索引中的整数位置)。
  • 标签列表或数组,例如 ['a', 'b', 'c']。
  • 带有标签的切片对象,例如'a':'f'。
  • 与被切片的轴长度相同的布尔数组,例如 [True, False, True]。
  • 一个可对齐的布尔系列。
  • 一个可对齐的索引。
  • 具有一个参数(调用 Series 或 DataFrame)并返回有效输出以进行索引的可调用函数(上述之一)

df.iloc 允许的输入是:

  • 一个整数,例如 5。
  • 整数列表或数组,例如 [4, 3, 0]。
  • 具有整数的切片对象,例如 1:7。
  • 一个布尔数组。
  • 具有一个参数(调用 Series 或 DataFrame)并返回有效输出以进行索引(上述之​​一)的可调用函数。

但是它们都不支持输入两个整数。

因此,也许您应该使用 df.iloc 来获取整数列表df.iloc[[int(a+2),int(2*b-2)]],而不是使用 df.loc df.loc[int(a+2),int(2*b-2)]

更多详细信息,您可以查看文档:

https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html https: //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html


推荐阅读