Python 基于元组列表中的索引值从数据帧中提取值

Python 基于元组列表中的索引值从数据帧中提取值,python,pandas,Python,Pandas,我有一个数据帧,我希望从中提取基于元组列表的值,元组列表包含我需要提取的值的索引。我还想提取相应的列标题和行标题。你有什么办法吗 以下是一个例子: 数据框如图所示 元组列表:[(0,2)、(1,0)、(2,1)] 目标是使用第一个元组提取值40,并以元组的形式提取标题值(作业1,工人2)。然后对接下来的两个元组执行相同的操作 import pandas as pd list_workers = ["Worker 1","worker 2","worker 3"] list_jobs = ["Jo

我有一个数据帧,我希望从中提取基于元组列表的值,元组列表包含我需要提取的值的索引。我还想提取相应的列标题和行标题。你有什么办法吗

以下是一个例子:

数据框如图所示

元组列表:[(0,2)、(1,0)、(2,1)]

目标是使用第一个元组提取值40,并以元组的形式提取标题值(作业1,工人2)。然后对接下来的两个元组执行相同的操作

import pandas as pd
list_workers = ["Worker 1","worker 2","worker 3"]
list_jobs = ["Job 1","Job 2","Job 3"]
list_cost = [40,60,15,25,30,45,55,30,25]
indexes = [(0,2),(1,0),(2,1)]

#this section can be ignored: creates a matrix and adds it into a df
cost_arr = np.array(list_cost)
cost_mat = cost_arr.reshape(len(list_workers),len(list_jobs))
df = pd.concat([df,pd.DataFrame(cost_mat)],axis = 1)

#the image show is the resulting df
#to extract corresponding values from df for each tuple
for i in indexes:
    print (df.iat(i))
试试这个:

import pandas as pd
df = pd.DataFrame({'a' : [1, 2], 'b' : [3, 4]})
ls = [(0, 1), (1, 0)]
for i in ls:
    print(df.iloc[i[0], i[1]])

可以使用.iloc[]方法进行基于索引的选择

如果您希望循环浏览所有项目

for tuple in list_of_tuple:
    row, col = tuple[0], tuple[1]
    val = df.iloc[row, col]
应采取以下措施:

import pandas as pd
df=pd.DataFrame({'W1':[1,2],'W2':[3,4]},index=["J1","J2"])
tuples=[(0,1),(1,0)]
values=[]
fieldNames=[]
for t in tuples:
  values.append(df.iloc[t[0],t[1]])
  fieldNames.append((df.index[t[0]],df.columns[t[1]]))
print(values)
print(fieldNames)

我认为,如果你编辑了你的问题,使其包含生成数据帧的最小工作代码,而不是它的照片,那将是一件好事。另外,到目前为止您尝试了什么?或者只是
print(df.iloc[i])