python - 从具有任意长度值的字典创建数据帧(使用回收键作为列值)

标签 python dataframe dictionary

我正在努力将字典转换为数据框。

已经有很多答案展示了如何以“宽格式”执行此操作,例如 https://stackoverflow.com/a/52819186/6912069但我想做一些不同的事情,最好不使用循环。

考虑以下示例:

我有一本像这样的字典

d_test = {'A': [1, 2], 'B': [3]}

我想得到一个像这样的数据框

index id    values
0     A     1
1     A     2
2     B     3

索引可以是普通的连续整数列。我所说的回收是指将 'A'=[1, 2] 转换为两行,其中 id 列中包含 A ,值列中包含值。这样我就会有一个字典项目的“长格式”数据框。

这似乎是一件非常基本的事情,但我想知道是否有一种优雅的 pythonic 方法来实现这一点。非常感谢您的帮助。

最佳答案

我会创建 2 个列表。一项来自键,另一项来自字典的值。当您定义列表时,您可以将列表传递到 DataFrame 中。

import pandas as pd
dic = {'A': [1, 2], 'B': [3], 'D': [4, 5, 6]}

keys = []
values = []

for key, value in dic.items():
    for v in value:
        keys.append(key)
        values.append(v)

df = pd.DataFrame(
    {'id': keys,
     'values': values,
    })
print(df)

关于python - 从具有任意长度值的字典创建数据帧(使用回收键作为列值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406088/

相关文章:

python - python中不同列表之间的循环

python - 使用python将xmi文件转换为xml文件

python - pandas DataFrame 和 pandas.groupby 计算工资

python - Pandas 数据框循环

Python:使用 pandas 数据帧中的数据更新字典

斯卡拉 : Merge two immutable maps on key and get new immutable map with same type

ios - MKMapView 未在 mapType MKMapTypeStandard 和 MKMapTypeHybrid 上加载

python - 获取 os.walk() 的排序输出

Python OpenCV PyCharm 自动完成

python - 在 2 列上合并 pandas 数据帧,但顺序不限