当前位置: 首页 > 知识库问答 >
问题:

根据索引标签[duplicate]在特定列中选择一个值

师曦
2023-03-14

因此,问题实际上是:

我创建(从熊猫文档直接复制粘贴)数据框:

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

这将创建一个像这样的DataFrame:(其中最左边的列实际上是索引

 col1  col2
0     1     3
1     2     4

然后我想给我的名字x分配col2和row1的值,即4。但是我想根据col1中的值来做这件事(因为我知道这个值)。所以它看起来或多或少像这样:

x = df.loc[df.col2 == df.loc[df.col1 == 2]]

我知道这没有意义,但也许有人理解这个问题,并提出了一个提示:)可能这是非常容易做到的,但我现在可以把我的头包在所有的. loc和. iloc的可能性

“真正”的问题是编写一个类,根据提供的aiport名称保存坐标(列lat,lon):(这仍然有点混乱)

def __init__(self, name):
        import pandas as pd
        alleDaten = pd.read_csv("airports.dat", delimiter=",", usecols=[1,6,7])
        alleDaten.columns = ["name","lat","lon"] #rename columns
        self._name = alleDaten.loc[alleDaten.name == "name"] #get name based on the provided name of the airport
        self._x = alleDaten.loc[alleDaten.name == "name", ["lat"]] # get lat based on the provided name
        self._y = alleDaten.loc[alleDaten.name == "name", ["lon"]] # get lon based on the provided name 

非常感谢任何帮助:)!!

共有2个答案

慕容宏邈
2023-03-14

x=df.iloc[1,1]
编号系统从0开始,因此[1,1]将选择第二行和第二列。

周翰池
2023-03-14

这应该可以为您提供技巧(仅获取过滤熊猫的值):

x = df.loc[df.col1 == 2, "col2"]
print(x.to_list()[0])

输出:

4

[Program finished]
 类似资料:
  • 问题内容: 我有这样的桌子 我需要选择何时类型为0,何时类型为1,何时类型为N … 我怎样才能做到这一点? 问题答案:

  • 在执行group-by之后,我的新df有3级multindex。我需要访问所有带有“ZEBRA”标签的行;它包含在第3级索引中。我正在尝试使用,但无法这样做。我想遍历标签,但这必须是一个嵌套循环才能在下面进行;这让我觉得我没有沿着正确的思路思考,肯定会更容易。 这个问题看起来很接近-按索引选择多索引数据帧中的行而不丢失任何级别,但重点关注第一级索引。 期望:

  • 我有一个12列的数据帧,下面的数据帧是一个简化的示例。 1)我了解值100,200和300,并且如果这些值在列1中可用,则要添加一个包含1的新列(列4),如果这些值在列1中可用,则为0,如果这些值不可用。 2)如果这些值(100,200,300)可用,我想从lookup_table中查找属于这些值的名称。 这是我想要的输出。 对于问题1,我尝试过,但没有成功。 对于问题2,我对原始数据帧中的12列

  • 我很难选择一个NumPy矩阵的每行的特定列。 假设我有以下矩阵,我称之为: 我还有一个每行列索引的,我称之为: 我需要获得值: 我还可以生成一个与形状相同的矩阵,而不是带有索引的,其中每一列都是一个/范围为0-1的值,指示这是否是必需的列。 我知道这可以通过迭代数组并选择我需要的列值来完成。然而,这将经常在大的数据数组上执行,这就是为什么它必须尽可能快地运行。 因此,我想知道是否有更好的解决办法?

  • 我有一个字符串列表,它有{“val1”、“val2”、“val3”、“val4”}等值,我有三个不同的组合框。每个组合框有5个以上的项。 现在,我只想从列表中选择一个具有组合框项目不同组合的值。我尝试过使用if-else和switch语句,但它的过程非常繁琐。那么,解决这类问题的最佳方法是什么呢?GUI部分的屏幕截图。 GUI 提前感谢。 我有一个像这样的长长的嵌套开关盒

  • 问题内容: 从pandas数据框中选择所有行的最简单方法是什么?谁的符号在整个表中恰好出现两次?例如,在下表中,我想选择在[‘b’,’e’]中带有sym的所有行,因为这些符号的value_counts等于2。 问题答案: 我认为您可以按列和值使用: 第二个解决方案使用与布尔索引: 并用最快的解决方案和: