由于我的上一个问题没有得到回答,因此我将更简单地重试。
我有一个程序可以创建包含行和列索引的列表:
a = [0, 0, 1, 1] # row
b = [0, 1, 0, 1] # column
这也可以格式化为列表列表:
a = [[0,0], [0,1], [1,0], [1,1]]
数据框:
Name 2544 2543 2542
0 DR01 13 16 23
1 DR02 15 27 12
2 DR03 16 18 13
3 DR04 17 92 56
目标是根据列表中的索引从提到的数据框中获取值,并创建一个新的数据框。我尝试了for循环,但没有用,而且速度很慢。
应该是什么样子
Name 2544
0 DR01 13
1 DR02 15
更新:
这是我尝试过的:
In[96]: df = importDialog.df.iloc[a,b]
In[96]: print(df)
Out[96]:
Name 2544 Name 2544
0 DR01 13 DR01 13
1 DR02 15 DR02 15
此外,当我尝试在表格中显示完整的数据集时:
MemoryError: Unable to allocate 9.06 GiB for an array with shape (34749, 34992) and data type object
答案 0 :(得分:2)
假设您已检查a,b
构成矩形:
a = [0, 0, 1, 1] # row
b = [0, 1, 0, 1] # column
df.iloc[sorted(set(a)),sorted(set(b))]
输出:
Name 2544
0 DR01 13
1 DR02 15