Python 从行和列索引创建数据帧

Python 从行和列索引创建数据帧,python,python-3.x,pandas,dataframe,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 DR

由于我之前的问题没有得到回答,我将更简单地再试一次

我有一个程序,它生成一个包含行和列索引的列表:

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

假设您已检查
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

你能发布你尝试过的内容和输出结果吗?索引总是创建一个矩形吗?@GlenvillePecor Done@QuangHoang我计划添加一个条件,如果形状不是矩形,则会引发异常。你能帮我个忙吗?你的六对a是如何产生2x2数据帧的?非常感谢,这让我头疼了将近两天。还有两件事,如果形状不是矩形,有没有办法做到这一点?我如何检查形状是否为矩形?
len(a)==len(set(a))*len(set(b))
这很有意义。再次感谢。我会投票支持你的答案,但是我没有足够的代表。另外,你需要检查
a,b
是否有相同的长度,这可能不是你的错误消息中的情况。