2017-06-23 171 views
0

我創建了一個字典的一段代碼:拆分元組的字典成大熊貓數據幀

dat[r["author_name"]] = (r["num_deletions"], r["num_insertions"], 
r["num_lines_changed"], r["num_files_changed"], r["author_date"]) 

我想,然後把這些字典,並創建一個列的熊貓

author_name | num_deletions | num_insertions | num_lines_changed |num_files changed | author_date 

我試過這個:

df = pd.DataFrame(list(dat.iteritems()), 
         columns=['author_name',"num_deletions", "num_insertions", "num_lines_changed", 
           "num_files_changed", "author_date"]) 

但它不起作用,因爲它讀取鍵和元組的dicti只有兩列,而不是六列。那麼我怎樣才能把這個元組中的五個條目中的每一個都分成不同的列呢?

回答

1

您需要在同一嵌套級別的鍵和值:

df = pd.DataFrame([(key,)+val for key, val in dat.items()], 
        columns=["author_name", "num_deletions", 
          "num_insertions", "num_lines_changed", 
          "num_files_changed", "author_date"]) 

你也可以使用

df = pd.DataFrame.from_dict(dat, orient='index').reset_index() 
df.columns = ["author_name", "num_deletions", 
       "num_insertions", "num_lines_changed", 
       "num_files_changed", "author_date"] 

這似乎是有點快,如果你有大約10,000行或者更多。

0

這應該可以工作。

import pandas as pd 

    df = pd.DataFrame(columns=['author_name', 'num_deletions', 'num_insertions', 'num_lines_changed', 
           'num_files_changed','author_date'])