2017-10-19 8 views
1

このコードを使用して、pandas DataFrame dfの各行をJson文字列に変換します。問題はそれがNoneを印刷していることですが、df.head()がデータを印刷します。pandas DataFrameの各行を別々のJson文字列に変換する

import pandas as pd 
import json 

df = pd.read_csv('mydataset.csv') 

for i in df.index: 
    print df.loc[i].to_json("row{}.json".format(i)) 
    if i==10: 
     break 

各行をJson文字列変数として取得して印刷するにはどうすればよいですか? Jsonの文字列の構造はプレーンで、配列はなく、文字列、整数、浮動小数点のフィールドです。

+0

@ScottBoston::これは私のために働いおかげで、これを使用してJSONとして保存された最後の列を持っている私のコードは動作しませんので質問は、JSON文字列に各行を変換する方法です。 – Dinosaurius

答えて

4

使用apply

df.apply(lambda x: print(x.to_json()), axis=1) 

EDIT:

使用カスタム関数:

def f(x): 
    a = x.to_json() 
    print (a) 


df.apply(f, axis=1) 
+0

'df'が大きいので、またforループ内で何らかの処理をする必要があるので、forループ内の各行を変換したい。 – Dinosaurius

+0

df.iterrows()内の 'for for: data = row.to_json()'を実行しても動作しません。 – Dinosaurius

+0

私の最後の編集のようなカスタム機能? – jezrael

2

.to_json(fname)関数は、データを直接jsonファイルに書き込んで何も返しません。その結果、あなたは何も返しませんが、実際のファイルはファイルシステムにあります。


更新:あなたはPythonで変数としてJSON文字列を保存したい場合は、その関数to_json()でfilename引数を指定しないでください。あなたはできる:a = df.iloc[0].to_json()と文字列は変数aに保存されます。行による処理のためのパラメータaxis=1

+1

それでは、このJson文字列をどのように変数に入れることができますか?この場合、私は 'to_json'を置き換えたいと思います。 – Dinosaurius

+1

@Dinosaurius 'to_json()'関数でファイル名の引数を指定しなかった場合、それをPythonの変数として保存することができます。 –

0

df.apply(lambda x: x.to_json("row{}.json".format(x.name)), axis=1) 

のみの出力を参照したい場合

df.assign(ln_A = lambda x: x.to_json())) 
関連する問題