从行和列索引创建数据框

时间:2020-02-20 21:01:29

标签: python python-3.x pandas dataframe

由于我的上一个问题没有得到回答,因此我将更简单地重试。

我有一个程序可以创建包含行和列索引的列表:

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

1 个答案:

答案 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