我有一个pandas数据帧,其结构如下:
我有一个元组数组
arr_tuples = [(0,3),(1,1),(1,3),(2,1)]
数组中的每个元组分别表示上述数据帧的行和列索引。在
我可以使用for循环找到arr_tuples
中索引的数据帧中的所有值,如下所示:
value_array = []
for item in arr_tuples:
row = item[0]
col = item[1]
value = df.iloc[row,col] # I also tried df.get_value here with similar result
value_array.append(value)
但这似乎是一个非常缓慢的方法。如果我的arr_tuples
中有很多元组,这将需要很长时间。在
有没有更好更快的方法来达到同样的效果? 在pandas中,有没有方法可以使用元组的列表/数组(包含行和列索引)来获取数据帧中的值?在
如果将
arr_tuples
变成Series
,则会更快:您可以将
pd.DataFrame.lookup
与一些zip
和打开包装的诡计一起使用list(zip(*arr_tuples))
从元组列表中创建两个元组很好,因为第一个元组是索引,第二个元组是列。这就是
pd.DataFrame.lookup
接受的参数。所以如果我把它们拆开,就行了相关问题 更多 >
编程相关推荐