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)]