【问题标题】:Creating a pandas dataframe from dict of lists of columns which have True从具有 True 的列列表的 dict 创建一个 pandas 数据框
【发布时间】:2017-04-21 20:29:14
【问题描述】:

我想要一本像这样的'item': [list_of_True_column_labels] 字典:

pre_df  = {'item1':['a','b','c'], 'item2':['c','d'], 'item3':['a', 'c', 'd', 'e'], 'item4':['e']}

并将其转换为 bool 的 pandas 数据框,如下所示:

index   A      B      C      D      E
item1  True   True   True   False  False
item2  False  False  True   True   False
item3  True   False  True   True   True
item4  False  False  False  False  True

1) 我试过这个(来自 StackOverflow):

pd.DataFrame(dict([(k,pd.Series(v)) for k,v in pre_df.items()]))

但这给了我一个不正确的数据框:

    item1 item2 item3 item4
0     a     c     a     e
1     b     d     c   NaN
2     c   NaN     d   NaN
3   NaN   NaN     e   NaN

2) 使用pd.melt() 似乎不是正确的方法。

【问题讨论】:

    标签: python pandas dictionary dataframe


    【解决方案1】:

    可以循环遍历字典,将每个值转换为Series对象,以原始列表为索引,值为True,然后调用DataFrame.from_dict()方法。这给出了所需输出的转置版本。转置结果并用 False 填充 NaN 即可满足您的需求:

    pd.DataFrame.from_dict({k: pd.Series(True, v) for k, v in pre_df.items()}).T.fillna(False)
    

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2021-07-02
      • 2018-03-05
      • 2020-02-22
      • 2020-07-09
      • 1970-01-01
      相关资源
      最近更新 更多