如何将嵌套列表转换为数据框

发布于 2025-02-11 05:58:40 字数 557 浏览 4 评论 0原文

我有一个嵌套的列表看起来很重要:

[[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
 [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]

我想将其转换为数据框架。 我在门户网站上查看了许多解决方案,但对我没有任何帮助:( 请帮助我,因为我在Python和Pandas模块中更新鲜。谢谢你!

这是我所需的输出:

”在此处输入图像描述”

我正在做这样的事情,但它对我不起作用: dataframe(data_dicts)

I have a nested list looked liek this:

[[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
 [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]

And I want to convert it into a Dataframe.
I looked at many solutions on our portal but nothing works for me :(
Please help me as I'm a fresher in Python and Pandas module. Thank you!

Here is my desired Output:

enter image description here

I'm doing something like this but it's not working for me:
DataFrame(data_dicts)

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

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

发布评论

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

评论(2

深白境迁sunset 2025-02-18 05:58:40

假设l您的输入列表,您可以使用列表/字典理解:

df = pd.DataFrame([{k:v for d in l for d in l for k,v in d.items()} for l in L])

nb。请注意,您的字典中有重复的键, last 一个优先级

输出:

  aaa bbb ccc ddd eee
0  42  60  25  14  84
1   4   0  25   1   8

输入:

L = [[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
     [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]

Assuming L your input list, you can use a list/dictionary comprehension:

df = pd.DataFrame([{k:v for d in l for d in l for k,v in d.items()} for l in L])

NB. note that you have duplicated keys in your dictionaries, the last ones take precedence

output:

  aaa bbb ccc ddd eee
0  42  60  25  14  84
1   4   0  25   1   8

input:

L = [[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
     [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]
许久 2025-02-18 05:58:40

您可以使用collections.defaultDict一起收集键的所有值,然后使用pd.concat来构造数据框 -

from collections import defaultdict

lld = [[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
 [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]

d = defaultdict(list)
for sublist in lld:
    for subdict in sublist:
        for k, v in subdict.items():
            d[k].append(v)
df = pd.concat([pd.DataFrame(value, columns=[key]) for key, value in d.items()], axis=1)

output

   aaa  bbb  ccc  ddd eee
0   42   60   25   14  15
1    4    0   25    1  84
2  NaN  NaN  NaN  NaN   1
3  NaN  NaN  NaN  NaN   8

You can use a collections.defaultdict to collect all values of a key together and then use pd.concat to construct a dataframe -

from collections import defaultdict

lld = [[{'aaa': '42'}, {'bbb': '60'}, {'ccc': '25'}, {'ddd': '14'}, {'eee': '15'}, {'eee': '84'}],
 [{'aaa': '4'}, {'bbb': '0'}, {'ccc': '25'}, {'ddd': '1'}, {'eee': '1'}, {'eee': '8'}]]

d = defaultdict(list)
for sublist in lld:
    for subdict in sublist:
        for k, v in subdict.items():
            d[k].append(v)
df = pd.concat([pd.DataFrame(value, columns=[key]) for key, value in d.items()], axis=1)

Output

   aaa  bbb  ccc  ddd eee
0   42   60   25   14  15
1    4    0   25    1  84
2  NaN  NaN  NaN  NaN   1
3  NaN  NaN  NaN  NaN   8
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文