2016-06-22 22 views
1

これは既にここで質問されているように思えるかもしれませんが、解決策のどれもうまくいかないようです。私はその後、使用Pandas DataFrameをJSON文字列に保存する

address date1 date2 date3 date4 date5 date6 date7 <email> NaN NaN NaN 1 NaN NaN NaN

:このような何かを探して、私はパンダのデータフレームの中に、このデータを読み

{'2016-05-08': 1, '2016-05-09': nan, '2016-05-05': nan, '2016-05-06': nan, '2016-05-07': nan, '2016-05-11': nan, 'address': '<email address>, '2016-05-12': nan, '2016-05-10': nan}

:私はこの線に沿って何かを探します辞書でスタート平均および標準偏差を計算してDataFrameに追加するには、次の方法を使用します。

mean = pd.Series(df.mean(axis=1), index=df.index) std = pd.Series(df.std(axis=1), index=df.index) df = pd.concat([df, mean, std], axis=1)

私がprint dfになると、それは必見です。ただし、このメソッドを使用してDataFrameをJSON文字列に書き込むと、df.to_json(<path to file>)、JSONファイルの元の辞書が取得されます。 JSONデータに標準偏差と平均を含むすべてのデータのJSON文字列が必要ですが、どのようにすればいいですか?

答えて

1

要約列に必要なデータがある場合は、列をデータフレームに追加します。

はJSONにエクスポートすると

df['std'] = pd.Series(df.std(axis=1), index=df.index) 

df['mean'] = pd.Series(df.mean(axis=1), index=df.index) 

を試してみてください。

編集:OK、印刷されたdfでうまく動作することがわかりました。

結果を再現できませんでした。これは私が持っているものである:ここでは

import pandas as pd 

d = {'2016-05-08': 1, '2016-05-09': float('nan'), '2016-05-05': float('nan'), '2016-05-06': float('nan'), '2016-05-07': float('nan'), '2016-05-11': float('nan'), 'address': '<email address>', '2016-05-12': float('nan'), '2016-05-10': float('nan')} 

df = pd.DataFrame(d, index=[0]) 

mean = pd.Series(df.mean(axis=1), index=df.index) 
std = pd.Series(df.std(axis=1), index=df.index) 
df = pd.concat([df, mean, std], axis=1) 

df.to_json('correctoutput.txt') 

は出力とJSONです:

http://www.jsoneditoronline.org/?id=c0b29191d89fba8b593e29009af4f382

+0

は何 'concat'方法がないことではないですか? –

+0

出力を変更しない –

+0

@GrantSteiner、上記の編集とは別に、ファイルなしでこのdf.to_json()を試して、正しい出力が得られるかどうかを確認してください。 – ivan7707

関連する問題