我有一个非常大的数据框,看起来像这样:
我想基于特定的位置和列名提取单元格值。例如,对于位置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吗?
谢谢您的帮助和建议。
答案 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