Python 创建一个列表,包括行名称、列名和dataframe中的值

Python 创建一个列表,包括行名称、列名和dataframe中的值,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: A B C A 1 3 0 B 3 2 5 C 0 5 4 我想要的是如下所示: my_list = [('A','A',1),('A','B',3),('A','C',0),('B','B',2),('B','C',5),('C','C',4)] 提前谢谢 IIUC,您可以执行以下操作: df.stack().reset_index().agg(tuple,1).tolist() 我想让索

我有以下数据帧:

    A   B   C  
A   1   3   0    
B   3   2   5     
C   0   5   4   
我想要的是如下所示:

my_list = [('A','A',1),('A','B',3),('A','C',0),('B','B',2),('B','C',5),('C','C',4)]
提前谢谢

IIUC,您可以执行以下操作:

df.stack().reset_index().agg(tuple,1).tolist()


我想让
索引
和值不同应该更清楚

[*df.stack().iteritems()]
[(('A', 'A'), 1), (('A', 'B'), 3), (('A', 'C'), 0), (('B', 'A'), 3), (('B', 'B'), 2), (('B', 'C'), 5), (('C', 'A'), 0), (('C', 'B'), 5), (('C', 'C'), 4)]


嗨,我想你可以把清单分成几个部分

with dataframe as data:
    for line in data.readlines():
        parts = line.split(' ') # split line into parts
        part1 = (parts[0])
        part2 = (parts[1])
        part3 = (parts[2])
您可以使用和从结果中获取记录数组:

df.stack().to_frame().to_records().tolist()
# [('A', 'A', 1), ('A', 'B', 3), ('A', 'C', 0), ('B', 'A', 3),...
也可以使用:


感谢您的回复,但是有什么解决方案可以删除重复项,如('A','B',3)和('B','A',3)?
with dataframe as data:
    for line in data.readlines():
        parts = line.split(' ') # split line into parts
        part1 = (parts[0])
        part2 = (parts[1])
        part3 = (parts[2])
df.stack().to_frame().to_records().tolist()
# [('A', 'A', 1), ('A', 'B', 3), ('A', 'C', 0), ('B', 'A', 3),...
In [1638]: df.unstack().to_frame().to_records().tolist()
Out[1638]: 
[('A', 'A', 1),
 ('A', 'B', 3),
 ('A', 'C', 0),
 ('B', 'A', 3),
 ('B', 'B', 2),
 ('B', 'C', 5),
 ('C', 'A', 0),
 ('C', 'B', 5),
 ('C', 'C', 4)]