【问题标题】:Create DataFrame with 1 column from dictionary of dictionaries使用字典字典中的 1 列创建 DataFrame
【发布时间】:2021-03-17 12:44:09
【问题描述】:

我将字典转换为 pandas DataFrame

import pandas as pd
my_dict = {
0: {1,5,8},
1: {2,7,6},
2: {8,3,7}
}
df = pd.DataFrame.from_dict(my_dict, orient='index', dtype=None, columns=None)
print (df)

输出:

   0  1  2
0  8  1  5
1  2  6  7
2  8  3  7

预期输出:

number column
0      1,5,8
1      2,7,6
2      8,3,7

所以列必须包含简单的容器,例如列表或系列。

问题
create pandas dataframe from dictionary of dictionaries
不要描述我的问题,因为我不需要很多专栏。
数据必须存储在 1 列中。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是一个简单的方法

    pd.DataFrame(my_dict.items(), columns=['number', 'column'])
    
       number  column
    0     0  {8, 1, 5}
    1     1  {2, 6, 7}
    2     2  {8, 3, 7}
    

    【讨论】:

      【解决方案2】:

      这个怎么样。

      df = pd.DataFrame.from_dict({k:str(v).replace('{','').replace('}','') for k,v in my_dict.items()}, orient='index', dtype=None, columns=None).rename(columns={0:'column'})
      df
      

      打印

          column
      0   8, 1, 5
      1   2, 6, 7
      2   8, 3, 7
      

      我们将集合 {1,5,8} 替换为字符串 '{1,5,8}' 并从字符串中删除大括号。请注意顺序更改,因为集合没有定义的顺序

      我假设您想要该列中的字符串

      【讨论】:

        【解决方案3】:
        df["new"]=df.iloc[:,:].values.tolist()
        
            0   1   2   new
        0   8   1   5   [8, 1, 5]
        1   2   6   7   [2, 6, 7]
        2   8   3   7   [8, 3, 7]
        

        不确定这是否也被认为是所需的输出,但是,它会将您的元素重新组合到一个列表中。

        不需要iloc

        【讨论】:

          猜你喜欢
          • 2020-08-31
          • 2018-01-06
          • 2021-06-20
          • 2020-07-06
          • 2017-05-05
          • 2019-02-10
          • 2022-07-02
          • 2019-01-16
          • 2017-06-26
          相关资源
          最近更新 更多