我有一个可以重构为pd.DataFrame(dict)的df:
city d1 d2 d3 d4
date
2014-05-01 sfo 4.26 6.58 2.32 -4.87
2014-05-01 yyz 2.90 6.64 24.78 -50.55
2014-05-01 yvr 2.90 6.64 24.78 -50.55
2014-05-01 dfw 4.06 6.54 2.40 -4.06
2014-05-01 pdx 9.96 6.66 30.35 64.24
听写:
{'date': {0: pd.Timestamp('2014-05-01 00:00:00'),
1: pd.Timestamp('2014-05-01 00:00:00'),
2: pd.Timestamp('2014-05-01 00:00:00'),
3: pd.Timestamp('2014-05-01 00:00:00'),
4: pd.Timestamp('2014-05-01 00:00:00')},
'city': {0: 'sfo', 1: 'yyz', 2: 'yvr', 3: 'dfw', 4: 'pdx'},
'd1': {0: 4.2599999999999998,
1: 2.8999999999999999,
2: 2.8999999999999999,
3: 4.0599999999999996,
4: 9.9600000000000009},
'd2': {0: 6.5800000000000001,
1: 6.6399999999999997,
2: 6.6399999999999997,
3: 6.54,
4: 6.6600000000000001},
'd3': {0: 2.3199999999999998,
1: 24.780000000000001,
2: 24.780000000000001,
3: 2.3999999999999999,
4: 30.350000000000001},
'd4': {0: -4.8700000000000001,
1: -50.549999999999997,
2: -50.549999999999997,
3: -4.0599999999999996,
4: 64.239999999999995}}
df.set_index(['date'], inplace=True)
我通过TimeGrouper
执行以下聚合:
grouped = df.groupby(['city', pd.TimeGrouper('M')])
monthly_agg = grouped.agg(['sum', 'count'])
每月\u agg如下所示:
d1 d2 d3 d4
sum count sum count sum count sum count
city date
dfw 2014-05-31 4.06 1 6.54 1 2.40 1 -4.06 1
pdx 2014-05-31 9.96 1 6.66 1 30.35 1 64.24 1
sfo 2014-05-31 4.26 1 6.58 1 2.32 1 -4.87 1
yvr 2014-05-31 2.90 1 6.64 1 24.78 1 -50.55 1
yyz 2014-05-31 2.90 1 6.64 1 24.78 1 -50.55 1
count
label列用于健全性检查,但一旦完成,我希望能够删除它
同样,d1、d2、d3、d4等下面的sum
标签也不再需要了
我想要的输出:
d1 d2 d3 d4
city date
dfw 2014-05-31 4.06 6.54 2.40 -4.06
pdx 2014-05-31 9.96 6.66 30.35 64.24
sfo 2014-05-31 4.26 6.58 2.32 -4.87
yvr 2014-05-31 2.90 6.64 24.78 -50.55
yyz 2014-05-31 2.90 6.64 24.78 -50.55
我怎么得到这个
EJB项目是一个专注于开发企业JavaBean的项目。通常,EJB依赖EntityBean来实现持久性,而持久性是使用JPA技术实现的(将JPA视为EJB的依赖项)
您可以选择独立于EJB创建JPA项目的原因是,有些人可能不想(或不需要)使用EJB,但他们仍然需要使用诸如JPA之类的ORM框架。例如,这种情况可能是一个web项目(即JSF),它将直接使用JPA进行持久化(无EJB)
要点是,尽管EJB3使用JPA实现持久性,但为了从JPA这样的ORM框架中获益,您不必在项目中使用EJB(除非您需要这样做)
现在,要在eclipse中的EJB项目上启用JPA,右键单击该项目,转到“project Facets”选项并选择JPA方面。通过这样做,eclipse将添加所需的库,创建必要的工件(persistence.xml),并在IDE上启用与JPA相关的工具
这取决于您使用的Java EE版本。在JavaEE6中,我们可以在WAR文件中包含EJB。所以一个动态网络项目就足够了
如果您使用的是JavaEE1.5,那么您需要一个用于JSF的动态Web项目,对于无状态bean,您需要一个EJB项目,还需要一个企业项目来将WAR和JAR捆绑到一个EAR中。您可以在EJB项目本身中拥有与持久性相关的类,而不需要这里的JPA项目
JavaEE提供了独立于EJB使用JPA的功能,因此如果您的应用程序不需要EJB,但仍然希望使用JPA,那么您可以选择JPA项目
Java持久性API,有时被称为JPA,是一种Java编程语言规范,它描述了使用Java平台标准版和Java平台企业版管理应用程序中的关系数据
Java持久性API是JSR220专家组工作的一部分。JPA2.0是JSR317专家组的工作
在这种情况下,持久性包括三个方面:
Enterprise JavaBeans(EJB)是由Sun Microsystems开发的Java API,它定义了多层客户机/服务器系统的组件体系结构
EJB系统允许开发人员专注于模型的实际业务架构,而不是担心连接所有工作部件所需的无休止的编程和编码。这项任务留给EJB服务器供应商完成。开发人员只需设计(或购买)所需的EJB组件,并将它们安排在服务器上
因为EJB系统是用Java编写的,所以它们与平台无关。由于是面向对象的,它们可以在现有系统中实现,几乎不需要重新编译和配置
相关问题 更多 >
编程相关推荐