簡體   English   中英

Python 將字典轉換為數據框失敗

[英]Python converting dictionary to dataframe fail

當我嘗試將以下字典轉換為數據幀時,python 將每行重復兩次。

a = [[[[130.578125, 96, 130.59375, 541],
       [130.5625, 635, 130.609375, 1055],
       [130.546875, 657, 130.625, 1917],
       [130.53125, 707, 130.640625, 1331],
       [130.515625, 1530, 130.65625, 2104]],
      [[130.578125, 96, 130.59375, 541],
       [130.5625, 635, 130.609375, 1055],
       [130.546875, 657, 130.625, 1917],
       [130.53125, 707, 130.640625, 1331],
       [130.515625, 1530, 130.65625, 2104]]],
     [[[143.34375, 5, 143.359375, 79],
       [143.328125, 142, 143.375, 129],
       [143.3125, 132, 143.390625, 137],
       [143.296875, 126, 143.40625, 118],
       [143.28125, 113, 143.421875, 125]],
      [[143.34375, 5, 143.359375, 79],
       [143.328125, 142, 143.375, 129],
       [143.3125, 132, 143.390625, 137],
       [143.296875, 126, 143.40625, 118],
       [143.28125, 113, 143.421875, 125]]]]

b = ['Mini','on']

c = dict(zip(b,a))

d = pd.DataFrame.from_dict(c)

print d

Python 打印以下輸出:

                                                Mini  \
0  [[130.578125, 96, 130.59375, 541], [130.5625, ...
1  [[130.578125, 96, 130.59375, 541], [130.5625, ...

                                                  on
0  [[143.34375, 5, 143.359375, 79], [143.328125, ...
1  [[143.34375, 5, 143.359375, 79], [143.328125, ...

所需的輸出是:

                                                Mini  \
0  [[130.578125, 96, 130.59375, 541], [130.5625, ...

                                                  on
0  [[143.34375, 5, 143.359375, 79], [143.328125, ...

有人可以建議我如何解決這個問題嗎?

讓我們從一個例子開始

你得到

pd.DataFrame({'Mini': [1, 1], 'on': [2, 2]})

在此處輸入圖片說明

當你想要的時候

pd.DataFrame({'Mini': [1], 'on': [2]})

在此處輸入圖片說明


您定義的a是列表形式的 2x2x5x4 數組。 第一個維度被壓縮到dict的值中。 第二個維度是長度為 2 的列表,我剛剛演示了將這樣的字典傳遞給pd.DataFrame時會發生什么

要修復它,請將以下行與您之前對d定義交換

    d = pd.Series(c).to_frame().T

回復評論
打印整個單元格內容

with pd.option_context('display.max_colwidth', -1):
    print d

暫無
暫無

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

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