如何从行中获取数据到元组

时间:2019-05-03 19:51:55

标签: python python-3.x pandas

这可能很简单,但是我试图将行中的数据放入元组列表中。

我正在使用pandas,因此电子表格中的数据位于元组列表中,但不会将每一行中的数据放入单个元组中。我的代码如下:

import pandas as pd

spreadsheet_data = []
data = pd.read_excel("file.xlsx")
info = [(ix, k, v) for ix, row in data.iterrows() for k, v in row.items()]
spreadsheet_data.append(info)
print(spreadsheet_data)

电子表格每行有3个项目:食品名称,食品类别和订单推荐。例如:A1 =可口可乐,B2 =饮料,C2 = 1 所有这些信息都应显示在一个元组中,如下所示:(可口可乐,饮料,1) 我大约有32行,就像这样,我需要列表中所有32行的元组。我拥有的代码列出了列表并创建了元组,但是元组中的数据无处不在。帮助将不胜感激。预先谢谢你。

1 个答案:

答案 0 :(得分:5)

pandas.DataFrame.itertuples

[*data.itertuples()]

[Pandas(Index=0, A=1, B=1, C=1, D=1, E=1),
 Pandas(Index=1, A=1, B=1, C=1, D=1, E=1),
 Pandas(Index=2, A=1, B=1, C=1, D=1, E=1),
 Pandas(Index=3, A=1, B=1, C=1, D=1, E=1)]

或者没有索引或命名元组

[*data.itertuples(index=False, name=False)]

[(1, 1, 1, 1, 1), (1, 1, 1, 1, 1), (1, 1, 1, 1, 1), (1, 1, 1, 1, 1)]

mapzip

[*zip(*map(data.get, data))] 

[(1, 1, 1, 1, 1), (1, 1, 1, 1, 1), (1, 1, 1, 1, 1), (1, 1, 1, 1, 1)]

设置

data = pd.DataFrame(1, range(4), [*'ABCDE'])

data

   A  B  C  D  E
0  1  1  1  1  1
1  1  1  1  1  1
2  1  1  1  1  1
3  1  1  1  1  1