这可能很简单,但是我试图将行中的数据放入元组列表中。
我正在使用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行的元组。我拥有的代码列出了列表并创建了元组,但是元组中的数据无处不在。帮助将不胜感激。预先谢谢你。
答案 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)]
map
和zip
[*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