当前位置: 首页 > 知识库问答 >
问题:

将键复制到列[重复]

百里弘致
2023-03-14

我有一个这样的数据帧。

index          column1
e1             {u'c680': 5, u'c681': 1, u'c682': 2, u'c57...
e2             {u'c680': 6, u'c681': 2, u'c682': 1, u'c57...
e3             {u'c680': 2, u'c681': 4, u'c682': 2, u'c57...
e4             {u'c680': 4, u'c681': 2, u'c682': 3, u'c57...
e5             {u'c680': 3, u'c681': 5, u'c683': 3, u'c57...

现在,我想将第1列中的dict扩展到如下所示的各个列。

index          c680           c681        c682        c683
e1             5              1           2           0 
e2             6              2           1           0
e3             2              4           2           0
e4             4              2           3           0    
e5             3              5           0           3

有没有捷径可以实现这一点?

共有1个答案

柳宾实
2023-03-14

这里最好不要使用应用(pd.系列)因为很慢,但DataFrame配置器与转换NaNs到0,然后到ints:

df = pd.DataFrame({'column1': [{'c681': 1, 'c682': 2, 'c57': 4, 'c680': 5}, 
                               {'c681': 2, 'c682': 1, 'c57': 7, 'c680': 6}, 
                               {'c681': 4, 'c682': 2, 'c57': 8, 'c680': 2}, 
                               {'c681': 2, 'c682': 3, 'c57': 1, 'c680': 4}, 
                               {'c683': 3, 'c681': 5, 'c57': 0, 'c680': 3}]},
                                 index=['e1','e2','e3','e4','e5'])


print (df)
                                        column1
e1  {'c680': 5, 'c682': 2, 'c57': 4, 'c681': 1}
e2  {'c680': 6, 'c682': 1, 'c57': 7, 'c681': 2}
e3  {'c680': 2, 'c682': 2, 'c57': 8, 'c681': 4}
e4  {'c680': 4, 'c682': 3, 'c57': 1, 'c681': 2}
e5  {'c683': 3, 'c680': 3, 'c57': 0, 'c681': 5}


df = pd.DataFrame(df['column1'].values.tolist(), index=df.index).fillna(0).astype(int)
print (df)
    c57  c680  c681  c682  c683
e1    4     5     1     2     0
e2    7     6     2     1     0
e3    8     2     4     2     0
e4    1     4     2     3     0
e5    0     3     5     0     3
df = pd.concat([df] * 1000, ignore_index=True)

In [108]: %timeit (pd.DataFrame(df['column1'].values.tolist(), index=df.index))
100 loops, best of 3: 10.1 ms per loop

In [109]: %timeit (df['column1'].apply(pd.Series))
1 loop, best of 3: 1.14 s per loop
 类似资料:
  • 给一本字典: 如何将键附加到列表中? 我走了这么远:

  • < code>list_of_lists=[[1,2,3],[4,5,6]] < br > < code > list _ to _ add =[" A "," B "," C"] 我希望结果是list_of_lists会变成: 谢谢!

  • 2.如果用户在excel表格中复制,则应易于复制,即使用户试图在记事本中复制,也应以表格格式打印。 3.添加一些元数据到剪贴板,以确定pojo何时我们将再次导入表。 为了将pojo列表转换为表格格式,我使用了jtable,但无法将所有jtable内容导出到剪贴板。 --pojo.java 当我试图将字符串值复制到剪贴板时,它是工作的,但当我试图复制pojo时,它是不工作的。

  • 我在jpa/Hibernate中映射复合键时遇到了问题。父实体和子实体都具有复合主键。 在运行时保存它时会出现以下异常: 我认为这是虚假的,因为有getter和setter。如果在priceRequestLegModel上使用mappedby=“leg”,在allocationModel上使用@mapsid,也会出现同样的错误。有人能指出我在这里做错了什么吗?

  • 嗨,我在执行代码时遇到错误: 我正试图将我的列表分组到地图中: