从Python到Excel的字典出口列表

发布于 2025-02-08 15:52:15 字数 548 浏览 3 评论 0原文

有一个名为“ aff”的列表,该列表由字典组成。看起来像这样:

Aff=[{('J', 0, 1): 36, ('J', 1, 1): 36, ('J', 2, 1): 42}, {('I', 0, 1): 36, ('I', 1, 1): 30}, {('H', 0, 1): 36, ('H', 1, 1): 36, ('H', 2, 1): 42}]

我想在Excel上获得这种结构:

-------Num------letter-----NV----Postion ---Q
        1         J         0       1       36
        1         J         1       1       36
        1         J         2       1       42
        2         I         0       1       36
        2         I         1       1       36 
...ect

have a list called 'Aff' that consists of dictionaries. It looks like this:

Aff=[{('J', 0, 1): 36, ('J', 1, 1): 36, ('J', 2, 1): 42}, {('I', 0, 1): 36, ('I', 1, 1): 30}, {('H', 0, 1): 36, ('H', 1, 1): 36, ('H', 2, 1): 42}]

and i wanna get this structure on EXCEL :

-------Num------letter-----NV----Postion ---Q
        1         J         0       1       36
        1         J         1       1       36
        1         J         2       1       42
        2         I         0       1       36
        2         I         1       1       36 
...ect

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百善笑为先 2025-02-15 15:52:15

您的字典键包含元组,迫使您更改数据的结构。 IIUC num是列表中字典的索引(+1)。

一旦制定数据,就可以使用pandas.to_excel()

import pandas as pd

Aff=[{('J', 0, 1): 36, ('J', 1, 1): 36, ('J', 2, 1): 42}, {('I', 0, 1): 36, ('I', 1, 1): 30}, {('H', 0, 1): 36, ('H', 1, 1): 36, ('H', 2, 1): 42}]

arr = []
for num, d in enumerate(Aff):
    for k,v in d.items():
        arr.append([num+1] + list(k) + [v])

df = pd.DataFrame(arr, columns=['Num', 'letter', 'NV', 'Position', 'Q'])

df.to_excel('output.xlsx', index=False)

print(df)将输出:

   Num letter  NV  Position   Q
0    1      J   0         1  36
1    1      J   1         1  36
2    1      J   2         1  42
3    2      I   0         1  36
4    2      I   1         1  30
5    3      H   0         1  36
6    3      H   1         1  36
7    3      H   2         1  42

Your dictionary keys consisting of tuple forces you to change the structure of your data. IIUC Num is the index (+1) of the dictionary in the list.

Once you flattened your data, you can use pandas.to_excel():

import pandas as pd

Aff=[{('J', 0, 1): 36, ('J', 1, 1): 36, ('J', 2, 1): 42}, {('I', 0, 1): 36, ('I', 1, 1): 30}, {('H', 0, 1): 36, ('H', 1, 1): 36, ('H', 2, 1): 42}]

arr = []
for num, d in enumerate(Aff):
    for k,v in d.items():
        arr.append([num+1] + list(k) + [v])

df = pd.DataFrame(arr, columns=['Num', 'letter', 'NV', 'Position', 'Q'])

df.to_excel('output.xlsx', index=False)

print(df) would output:

   Num letter  NV  Position   Q
0    1      J   0         1  36
1    1      J   1         1  36
2    1      J   2         1  42
3    2      I   0         1  36
4    2      I   1         1  30
5    3      H   0         1  36
6    3      H   1         1  36
7    3      H   2         1  42
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文