簡體   English   中英

從具有不同長度值的字典創建 DataFrame

[英]Creating DataFrame from dictionary with different lengths of values

因此,我希望從類似於以下內容的字典中創建 DataFrame:

d = {A: ['cat','dog','zebra'],
     B: ['frog,'lion'],
     C: ['snake','cat','ant','bird','turtle'],
     D: ['sloth']}

我希望 dataframe 看起來像這樣:

Col1   Col2   Col3   Col4   Col5   Col6
 A    'cat'  'dog'  'zebra'  na     na
 B    'frog' 'lion'   na     na     na
 C    'snake' 'cat'  'ant'  'bird'  'turtle'
 D    'sloth'  na      na    na     na

有任何想法嗎? 謝謝你!

使用列表推導為嵌套列表添加字典鍵,傳遞給DataFrame構造函數並添加DataFrame.add_prefix

df = pd.DataFrame([[k,] + v for k, v in d.items()]).add_prefix('Col')
print (df)
  Col0   Col1  Col2   Col3  Col4    Col5
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None

或者使用DataFrame.from_dict將索引轉換為列,然后設置新的列名:

df = pd.DataFrame.from_dict(d, orient='index').reset_index()
df.columns = [f'col{x}' for x in range(1, len(df.columns) + 1)]
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None      

如果想從col1開始,可以使用自定義 function rename

f = lambda x: f'col{x+1}'
df = pd.DataFrame([[k,] + v for k, v in d.items()]).rename(columns=f)
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM