从字典创建csv文件

时间:2017-11-14 01:48:06

标签: python pandas jupyter-notebook

我有这样的字典:

culture= {13298341: [18.81,1155,'09-10-06',"['Africa', 'books', 'storytelling',
          'writing']", 'The danger of a single story','Chimamanda Ngozi'],

          14689301: [21.26,970,'06-09-25',"['TED Brain Trust', 'brain', 'evolution']",
          'The surprising science of happiness','Dan Gilbert']}

每个键有多个值。 如何将这个字典存储在一个新的csv文件中,每个键和每个值都在一个单独的列中?

结果应该是这样的csv文件:

 views    duration   comments  Published_date               tags                                title                              speaker                   
13298341   18.81       1155       09-10-06    ['Africa', 'books', 'storytelling']        The danger of a single story          Chimamanda Ngozi
14689301   21.26       970        06-09-25    ['TED Brain Trust', 'brain', 'evolution']  The surprising science of happiness   Dan Gilbert

1 个答案:

答案 0 :(得分:3)

首先,我删除了列表中的双引号。我不认为他们是需要的,所以希望这不会引起不适当的问题。

其次,希望你对以熊猫为中心的解决方案感到满意。

import pandas as pd

culture= {13298341: [18.81, 1155, '09-10-06', ['Africa', 'books', 'storytelling', 'writing'],
                 'The danger of a single story','Chimamanda Ngozi'],

      14689301: [21.26, 970, '06-09-25', ['TED Brain Trust', 'brain', 'evolution'],
      'The surprising science of happiness','Dan Gilbert']}

df = pd.DataFrame(culture).transpose().reset_index()

df.columns = ['views', 'duration', 'comments', 'Published_date', 'tags', 'title', 'speaker']

df.set_index('views', inplace = True)
df.to_csv('df.csv')

第三,我建议使用“视图”以外的索引。您可以通过删除上面的df.set_index(...)行来解决此问题。

ETA:刚刚检查过,它在那里使用双引号。我认为它不会影响CSV输出。但是,使用引号,pandas将数据存储为字符串;如果没有引号,它会将它们存储为列表,这意味着您可以通过索引来访问它们。凉。