我有以下数据框:
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)]
谢谢!
答案 0 :(得分:5)
IIUC,您可以这样做:
df.stack().reset_index().agg(tuple,1).tolist()
[('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)]
答案 1 :(得分:3)
我想让malloc
和值不同应该更清楚
index
或
[*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)]
答案 2 :(得分:3)
您可以stack
并使用to_records
从结果中获取记录数组:
df.stack().to_frame().to_records().tolist()
# [('A', 'A', 1), ('A', 'B', 3), ('A', 'C', 0), ('B', 'A', 3),...
答案 3 :(得分:1)
嗨,我认为您可以将列表分成几部分来完成
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])
答案 4 :(得分:1)
也可以使用unstack
:
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)]