根据值中的逗号将字典的值分为两个数据框列

时间:2019-04-29 10:55:53

标签: python-3.x dataframe dictionary

嗨,我在下面有一本字典,

我想根据字典值中的逗号将字典值分为两个,然后将结果存储在新数据框中,如下所示:

对于特定的词典条目,在我们的案例中,假设第一个:

(1,5)-这是关键,并且应该是新数据框中的第1列 (2,)-此值是从值(逗号前)中提取的,应位于数据框中的第2列 1.0-该值是从值(逗号后)中提取的,应位于数据框中的第3列

应该对字典中的所有(在此情况下为4个)键值对重复相同的过程。

如果rules是字典的名称, 我知道我可以访问rules.keys()和rules.values(),但是我不了解的是如何访问字典中的逗号分割值,因为当我尝试使用rules.values()时[1] ,则会引发错误。

{(1, 5): ((2,), 1.0),
 (2, 5): ((1,), 1.0),
 (4,): ((2,), 1.0),
 (5,): ((1, 2), 1.0)}

输出DF:

Col 1       Col2        Col3
(1, 5)      (2,)        1.0
(2, 5)      (1,)        1.0
(4,)        (2,)        1.0
(5,)        (1, 2)      1.0

1 个答案:

答案 0 :(得分:1)

使用列表理解。

例如:

import pandas as pd

data = {(1, 5): ((2,), 1.0), (2, 5): ((1,), 1.0), (5,): ((1, 2), 1.0), (4,): ((2,), 1.0)}
df = pd.DataFrame([[k] + list(v) for k, v in data.items()], columns=["Col_1", "Col_2", "Col_3"])
print(df)

输出:

    Col_1   Col_2  Col_3
0  (1, 5)    (2,)    1.0
1  (2, 5)    (1,)    1.0
2    (5,)  (1, 2)    1.0
3    (4,)    (2,)    1.0