python - Pandas 分组索引以分隔具有相应值的列
问题描述
我正在尝试转换分组的 timeindex 数据帧,因此每个索引都是一个新列,并且这些列具有用于对应每个索引的数据,我该怎么做?这是一个例子:
data = {'field1':['a','a','c','a','b','c','a','b','c','a','b','c','c'],
'field2':[1,5,12,10,8,4,33,9,1,33,9,1,1],
}
df = pd.DataFrame(data)
df = pd.DataFrame(data, index =['2020-01-01 06:00:00-05:00', '2020-01-01 06:20:00-05:00', '2020-01-01 06:28:00-05:00',
'2020-01-01 06:25:00-05:00', '2020-01-01 07:00:00-05:00', '2020-01-01 07:09:00-05:00',
'2020-01-01 07:15:00-05:00','2020-01-01 07:48:00-05:00', '2020-01-01 06:20:00-05:00',
'2020-01-01 08:33:00-05:00','2020-01-01 08:38:00-05:00','2020-01-01 06:20:00-05:00',
'2020-01-01 08:45:00-05:00'])
df.index = pd.to_datetime(df.index)
df=df.groupby([pd.Grouper(freq='1H'), 'field1']).count()
解决方案
你快到了。只是.unstack()
和transpose
结果数据框
df=df.groupby([pd.Grouper(freq='1H'), 'field1']).count().unstack()\
.T.reset_index().drop(columns='level_0')
field1 2020-01-01 06:00:00-05:00 2020-01-01 07:00:00-05:00 \
0 a 3.0 1.0
1 b NaN 2.0
2 c 3.0 1.0
2020-01-01 08:00:00-05:00
0 1.0
1 1.0
2 1.0
推荐阅读
- java - 获取firebase firestore值的值
- javascript - 为什么我的函数不能正确识别元素的样式?
- google-apps-script - 如何将 Google Apps 脚本应用于多个工作表(相关下拉菜单)?
- azure - 使用 Azure Runbook 删除 Azure 文件共享中的旧文件
- css - 在 Laravel 中是否有内联资产(例如 css)的功能?
- javascript - 在原型上使用闭包有缺点吗?
- javascript - 为什么不将动态生成的输入字段添加到 $_POST 数组中?
- javascript - iOS Safari 上的 microsoft-cognitiveservices-speech-sdk/javascript:MicAudioSource 问题
- javascript - 如何在节点 JS 中读写文件?
- r - 如何从 kableExtra kbl 表中删除 NA?