我意识到这似乎是一个已经在这里提出的问题,但是所有解决方案似乎都没有用。我从一本字典开始,该字典看起来与此类似:{'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}
我将这些数据读入pandas DataFrame,看起来像这样:address date1 date2 date3 date4 date5 date6 date7<email> NaN NaN NaN 1 NaN NaN 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数据中,我该怎么做?
最佳答案
如果您的摘要列为您提供了所需的数据,请将这些列添加到数据框。
尝试
df['std'] = pd.Series(df.std(axis=1), index=df.index)
df['mean'] = pd.Series(df.mean(axis=1), index=df.index)
然后导出为JSON。
编辑:好的,我看到您看到它与print 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
关于python - 将Pandas DataFrame保存到JSON字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37976996/