在Python中对行(日期)进行分组并汇总多个列(每个日期的几个测量值)
我使用Python Pandas并从Postgres加载如下表:在Python中对行(日期)进行分组并汇总多个列(每个日期的几个测量值),python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我使用Python Pandas并从Postgres加载如下表: date v00 v01 v02 v03 2001-01-01 00:00:00 30 40 50 100 2001-01-01 00:00:00 80 120 20 60 2001-02-01 00:00:00 20 70 50 20 我想使用Pandas对日期行进行分组并汇总值。结果应该是这样的 2001-01-01 00:00:00
date v00 v01 v02 v03
2001-01-01 00:00:00 30 40 50 100
2001-01-01 00:00:00 80 120 20 60
2001-02-01 00:00:00 20 70 50 20
我想使用Pandas对日期行进行分组并汇总值。结果应该是这样的
2001-01-01 00:00:00 500
2001-02-01 00:00:00 160
我可以对日期进行分组,并单独汇总值,但不能在一个视图中
我的结果是
1 220
2 280
3 160
及
这就是代码:
将psycopg2作为ps导入
作为pd进口熊猫
导入openpyxl
conn=ps.connecthost=host,user=user,password=password,dbname=Python\u ueben
cur=conn.cursor
打印“连接”
schema=inputGeben Sie das schema ein
表=输入Geben Sie die Tabele ein
def load_数据模式,表:
sql_命令=从{}.{};中选择*;。formatstrschema,标准表格
打印sql\u命令
加载数据
data=pd.read\u sqlsql\u命令,conn
groub=data.groupby['date']分组日期并保存在变量中
printdata.sumaxis=1,skipna=真和值v00-v03
printgroub.sumaxis=1,skipna=True group and sum,但不是正确的结果
printdata.groupby['date'].sumaxis=0,skipna=False
加载数据'public','zeitreiche'
如果“日期”列为“第一个聚合总和”,然后“每个轴的总和”=1:
或按日期列创建索引,然后对所有行和每个索引的最后一个总和每个索引的总和:
df1 = df.set_index('Date').sum(axis=1).sum(level=0).reset_index(name='sum')
如果日期为索引,则简化上述解决方案:
df1 = df.sum(axis=1).sum(level=0).reset_index(name='sum')
df1 = df.sum(level=0).sum(axis=1).reset_index(name='sum')
日期是列还是索引?谢谢!即使是第一个解决方案也奏效了。非常好而且非常快:D
df1 = df.set_index('Date').sum(axis=1).sum(level=0).reset_index(name='sum')
df1 = df.sum(axis=1).sum(level=0).reset_index(name='sum')
df1 = df.sum(level=0).sum(axis=1).reset_index(name='sum')