将.iloc与“列表”对象一起使用

时间:2020-09-18 07:52:18

标签: python pandas list

我有一个非常大的数据框,看起来像这样:

enter image description here

我想基于特定的位置列名提取单元格值。例如,对于位置2b,则为DE36的值。

例如,我列出了两个列表,分别包含所需的行和要提取的列

row_name =["2b", "87f"]
column_name=["NL984", 'DE36']

因此,想提取 2b 位置上的 NL984 的值,以及 87f 位置上的 DE36 的值

进行循环并尝试以下操作:

df.iloc[df.position==row_name[i],column_name[i]])

但是我遇到了错误:

TypeError:“列表”对象不能解释为整数

还有其他可能将列表参数传递给.iloc吗?

谢谢您的帮助和建议。

1 个答案:

答案 0 :(得分:2)

使用DataFrame.loc用于按标签选择,因此position列已转换为索引:

row_name =["2b", "87f"]
column_name=["NL98", 'DE36']

df = df.set_index('position').loc[row_name, column_name]
print (df)
          NL98  DE36
position            
2b           0     8
87f          7    16