python - Pandas:将数据帧写入json

标签 python json pandas dataframe resampling

我有数据框:

         date   id
0  12-12-2015  123
1  13-12-2015  123
2  15-12-2015  123
3  16-12-2015  123
4  18-12-2015  123
5  12-12-2015  456
6  13-12-2015  456
7  15-12-2015  456

我需要将 date 数到 id 我尝试 df.groupby('id')['date'].count() 我需要获取(如果日期不在id中,则等于0)

      id   date   count
0  123   12-12-2015   1
1  123   13-12-2015   1
2  123   14-12-2015   0
3  123   15-12-2015   1
4  123   16-12-2015   1
5  123   17-12-2015   0
6  123   18-12-2015   1
7  456   12-12-2015   1
8  456   13-12-2015   1
9  456   14-12-2015   0
10 456   15-12-2015   1

接下来以这种格式将其写入 json 文件

{
"1234567890abcdef1234567890abcdef": {
    "2016-06": 1, 
    "2016-05": 0, 
    "2016-04": 0, 
    "2016-03": 1, 
    "2016-02": 1, 
    "2016-01": 0
}, 
"0987654321abcdef1234567890abcdef": {
    "2016-06": 1, 
    "2016-05": 1, 
    "2016-04": 1, 
    "2016-03": 0, 
    "2016-02": 0, 
    "2016-01": 0
}

}

我怎样才能做到这一点?

最佳答案

首先使用resample:

df['date'] = pd.to_datetime(df.date)
df.set_index('date', inplace=True)

df = df.groupby('id').resample('D').size().reset_index(name='val')
print (df)

     id       date  val
0   123 2015-12-12    1
1   123 2015-12-13    1
2   123 2015-12-14    0
3   123 2015-12-15    1
4   123 2015-12-16    1
5   123 2015-12-17    0
6   123 2015-12-18    1
7   456 2015-12-12    1
8   456 2015-12-13    1
9   456 2015-12-14    0
10  456 2015-12-15    1

然后是to_json:

#remove 00:00:00 from datetime
df['date'] = df.date.dt.date
print (df.groupby('id').apply(lambda x: x.set_index('date')['val'].to_dict()).to_json())

{"123":{"2015-12-18":1,"2015-12-15":1,"2015-12-12":1,"2015-12-16":1,"2015-12-13":1,"2015-12-17":0,"2015-12-14":0},
"456":{"2015-12-15":1,"2015-12-12":1,"2015-12-13":1,"2015-12-14":0}}

关于python - Pandas:将数据帧写入json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339523/

相关文章:

python - 根据另一个 csv 文件过滤 csv 文件中的行并将过滤后的数据保存在新文件中

python - 如何在pyparsing中同时使用整数和 float

c# - JavaScriptSerializer : Unable to deserialize object containing HashSet field

c# - 如何通过匹配值从 JSON 字符串中的特定属性中删除值?

python - 模块 'pandas' 没有属性 'rolling_apply'

python - 从同一个类调用方法

c# - 处理Json时如何修复循环引用错误

python - 如何使用 Python 和 Pandas 查找具有单个字符的句子

python - 基于列标题字符串的 pandas DataFrame 列的条件格式

android - 为 android 商店签署 kivy 应用程序时出错