簡體   English   中英

Pandas:從dict在DataFrame中創建命名列

[英]Pandas: create named columns in DataFrame from dict

我有一個表格的字典對象:

my_dict = {id1: val1, id2: val2, id3: val3, ...}

我想將其創建為一個DataFrame,我想在其中列出2列'business_id'和'business_code'。

我試過了:

business_df = DataFrame.from_dict(my_dict,orient='index',columns=['business_id','business_code'])

但是它說from_dict沒有接受一個列參數。

TypeError:from_dict()得到一個意外的關鍵字參數'columns'

您可以遍歷項目:

In [11]: pd.DataFrame(list(my_dict.iteritems()),
                      columns=['business_id','business_code'])
Out[11]: 
  business_id business_code
0         id2          val2
1         id3          val3
2         id1          val1

要獲得與文檔相同的功能並避免使用代碼解決方法,請確保您使用的是最新版本的Pandas。 我最近在從Pandas教程運行一行代碼時遇到了同樣的錯誤:

pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]),orient='index', columns=['one', 'two', 'three'])

我檢查了Pandas的版本,發現當版本23可用時我運行的是22版。

import pandas as pd
pd.__version__
Out[600]: '0.22.0'

我用pip升級了:

c:\pip install --upgrade pandas

我確認我的版本更新為23,並且相同的from_dict()代碼正常工作。 無需修改代碼。

從版本0.23.0開始 ,您可以在from_dict指定columns參數:

my_dict = {id1: val1, id2: val2, id3: val3, ...}
prepared_dict = {i: x for i, x in enumerate(my_dict.items())}
df = pd.DataFrame.from_dict(prepared_dict, orient='index', columns=['business_id', 'business_code'])

注意:我也在這個類似的問題上回答了同樣的問題

做這個:

創建數據框

df = pd.DataFrame(data_as_2d_ndarray)

從字典中創建列名的排序列表 - 根據需要調整鍵karg從dict中獲取排序值,顯然數據必須具有一致的形狀的字典

col_names = sorted(list(col_dict.iteritems()),key=lambda x:x[0])

重塑並設置列名稱

df.columns  = zip(*col_names)[1]

這與您面臨的TypeError有關。 根據Pandas文檔,只有當orient ='index'時,from_dict才會使用關鍵字'columns'。

暫無
暫無

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

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