【问题标题】:Splitting value of a dictionary into two dataframe columns based on a comma in the value根据值中的逗号将字典的值拆分为两个数据框列
【发布时间】:2019-04-29 10:55:52
【问题描述】:

您好,我在下面有一本字典,

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

对于一个特定的字典条目,让我们说第一个:

(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

【问题讨论】:

  • 你能发布输出DF吗?
  • 我刚发了,谢谢

标签: python-3.x dataframe dictionary


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-11-11
    • 2019-09-17
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多