2016-10-13 10 views
0

辞書に変換して辞書をパンダのデータフレームに変換したいリストがあります。リストからパンダデータフレームを作成するまず辞書を作成してそれをデータフレームに変換する

私は、次のエラーを取得していますが私の試みは以下の通りです:データの

'numpy.int64' object has no attribute 'DataFrame'

**df = pd.DataFrame.from_dict(a, orient='index') 

サンプル:

{'AAM': 2, 
'ABC': 5, 
'ABP': 3, 
'ABU': 1, 
'ACL': 3, 
'ACX': 6, 
'ADA': 7, 
'ADE': 2, 

をここでは、私が作成しようとするために使用されている機能ですデータフレーム最後の行で問題が発生しています。

df = pd.DataFrame.from_dict(a, orient='index')

def list_to_dict(a_list): 
    results = {} 
    for i in a_list: 
     i = str(i) 
     if len(results.keys())==0: 
      results[i] = 1 
     else: 
      if i not in results.keys(): 
       results[i] = 1 
      else: 
       results[i] = results[i] + 1 

    return results 

flatten = df.mentions.tolist() 
combined = [item for sublist in flatten for item in sublist] 
a = list_to_dict(combined) 
df = pd.DataFrame.from_dict(a, orient='index') 
+0

エラーを返すデータのサンプルを追加できますか? – jezrael

+1

この情報から私は 'pd'は' numpy.int64'型であると結論づけます。あなたはあなたのコードのどこかで 'pd'を上書きしていないと確信していますか? – msvalkon

+0

'a'がサンプル' dict'であれば完璧に動作します。 – jezrael

答えて

0

あなたは2つのリストの内包表記を行うことができ、あなたのサンプルのように既に辞書を持っている場合:

d = { 
    'AAM': 2, 
    'ABC': 5, 
    'ABP': 3, 
    'ABU': 1, 
    'ACL': 3, 
    'ACX': 6, 
    'ADA': 7, 
    'ADE': 2 
} 
pd.DataFrame([[item for item in d.keys()],[item for item in d.values()]]) 

結果はあなたのデータを持つデータフレーム

 0 1 
0 ADA 7 
1 ACX 6 
2 ABU 1 
3 AAM 2 
4 ABC 5 
5 ACL 3 
6 ABP 3 
7 ADE 2 
+0

これは私が両方のキーと辞書の値を2つの列データフレーム内でしかし、私はまだ上記のエラーを取得しています:[サブリストの項目のために平らにサブリストのためのアイテム] はAttributeErrorトレースバック(最後の最新の呼び出し) 中) 2組み合わせ= 3 = list_to_dict(組み合わせ) ----> 4データ= pd.DataFrame([a.keys内のアイテムの[アイテム()]、a.values内のアイテムの[アイテム()]]) 5データ はAttributeError : 'numpy.int64'オブジェクトに属性 'DataFrame'がありません。 – yoshiserry

+0

@yoshiserry 'a'が実際に辞書で、' pd'が 'pandas'ライブラリであれば、mineとA.kotの両方のソリューションが動作します。私はあなたのコードのどこかで 'pd'を上書きしたと思います。 – wonderkid2

+0

私はpdを上書きしています。私のコードでは構文上の問題になります。私がpd.DataFrame()を持っていなかった場合、DataFrame()が何であったのか分かりません。これは私がpandasライブラリに与えたエイリアスを必要とします。私はパンダのライブラリへの参照を上書きしたかどうかを確認するためにコードを見直し続けます。 – yoshiserry

1

はあなたを行いますです2つの列としてキーと値を必要とするか、他に何かしようとしていますか?前者の場合、これで必要なのは次のとおりです。

pd.DataFrame(a.items()) 
+0

はい、キーと値を別々の列にしたいと思います。したがって、結果のデータフレームの2つの列 – yoshiserry

+0

上記のコードを使用してください。 –

+0

ありがとう非常にA.私は – yoshiserry

関連する問題