python - 如何将熊猫 groupby 输出转换为单独的 excel 表?
问题描述
我创建了 10 天每小时数据的时间戳,然后创建了 2 个具有随机值的随机列。
import pandas as pd
import numpy as np
timestamp = pd.date_range('01/01/2020 00:00','01/10/2020 23:00', freq = '1H')
arr1 = np.random.randint(100,200,(len(timestamp)))
arr2 = np.random.randint(100,200,(len(timestamp)))
使用和作为列和作为索引创建了dataframe
这两个。arrays
col1
col2
timestamp
dic1 = {'col1':arr1,'col2':arr2}
df = pd.DataFrame(dic1, index=timestamp)
之后,我使用 pandasgroupby
函数对它们进行分组days
,我想创建每个组的 excel 输出(10 天 10 个 excel 输出)。
df2 = df.groupby(pd.Grouper(freq='D'))
for idx, i in enumerate(df2):
df = pd.Dataframe(i)
df.to_csv(str(idx)+'.csv')
但这给出了非常奇怪的输出,有 10 个 excel 文件,但其中没有值。有人可以帮忙吗? 第 1 天的期望输出 :
同样,每天都应该生成这种类型的 excel。
解决方案
如果你迭代 a .groupby
,你会得到一个 2 元组,其中第一个元素是组键,第二个元素是组数据,所以你需要类似:
df2 = df.groupby(pd.Grouper(freq='D'))
for idx, (_, sdf) in enumerate(df2):
sdf.to_csv(str(idx) + '.csv')
推荐阅读
- coldfusion - 如何检查 cfcatch 块中的本机代码错误?
- android - 谷歌地图未在真实设备中显示
- oracle - 如何提高 FORALL 插入例程的性能?
- node.js - 如何在单个请求中读取 Firestore 中的多个文档?
- java - SpringBoot MongoDB CrudRepositoryCustom Implementation 的目录结构应该如何组织?
- neo4j - Neo4j Cypher:匹配数组中的多个属性值
- android - 告诉我如何将 GridView 放在 ListView 中(我在创建适配器时遇到了很多麻烦)
- python - 如何从具有给定均值、方差、偏度和峰度的正态分布中提取随机数
- apache-spark - 如何防止聚合函数忽略 NULL
- gridview - 在 GridView Yii2 的表上应用类