首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值,并使用Binning标签引用另一个dataframe的索引。

值,并使用Binning标签引用另一个dataframe的索引。
EN

Stack Overflow用户
提问于 2014-02-25 12:33:05
回答 1查看 137关注 0票数 0

我正在努力完成这一任务:

我到目前为止所做的事情,:我有8760个值,在这些值中,我根据一定的间隔对它们进行了绑定。间隔数为10,然后对值进行分组。

Problem:现在,我必须将这个dataframe (Df1)的每个“级别”引用到另一个数据数据索引in (df2)中,以执行一个特定的逐行计算。(即)指向另一个数据的10个索引的10个间隔。

代码语言:javascript
复制
bins=[-1,0,1,1.065,1.230,1.500,1.950,2.800,4.500,6.200,13.10]
arr=pd.cut(df1,bins)
grouped=df1.groupby(arr)
pd.value_counts(arr)


Out[58]:
(-1, 0]           4015  
(0, 1]            1948  
(1.95, 2.8]       646  
(2.8, 4.5]        542  
(1.5, 1.95]       539  
(1.23, 1.5]       427  
(1.065, 1.23]     337  
(4.5, 6.2]        127  
(1, 1.065]        125  
(6.2, 13.1]        54  
dtype: int64  

现在我必须使用它将其引用到(df2)的索引中。

代码语言:javascript
复制
data={'f11':['0','0','-0.008','0.13','0.33','0.568','0.873','1.132','1.06','0.678'],'f12':['0','0','0.588','0.683','0.487','0.187','-0.392','-1.237','-1.6','-0.327'],'f13':['0','0','-0.062','-0.151','-0.221','-0.295','-0.362','-0.412','-0.359','-0.25'],'f21':['0','0','-0.06','-0.019','0.055','0.109','0.226','0.288','0.264','0.156'],'f22':['0','0','0.072','0.066','-0.064','-0.152','-0.462','-0.823','-1.127','-1.377'],'f23':['0','0','-0.022','-0.029','-0.026','-0.014','0.001','0.056','0.131','0.251']}  

df2=DataFrame(data,columns=['f11','f12','f13','f21','f22','f23'],index=['1','2','3','4','5','6','7','8','9','10'])

解决方案需要: (-1,0]引用索引'1',(0,1)到索引'2‘,因此on.This将执行(f11+f12+(f21*f22*f23))根据所引用的索引对所有8760个值行执行。

EN

回答 1

Stack Overflow用户

发布于 2014-02-25 16:01:52

  1. 将类别映射为整数索引 mapping_dict = dict(zip(arr.unique(),np.arange(arr.size) category_as_int = pd.Series(arr).map(mapping_dict)
  2. 将category_as_int作为列添加到df1中 df1 = pd.DataFrame( df1 ) #如果它是一个序列,则将df1转换为DataFrame df1'key‘= category_as_int
  3. 合并df1和df2 (df2索引中的注释更改) df2 =DataFrame(数据,列=‘f11’,'f12','f13','f21','f22','f23',index=np.arange(len(Data) df = pd.merge(df1,df2,左侧_on=‘key’,right_index=True,how='left')
  4. 对所有8K+行执行操作 df.f11 + df.f12 + (df.f21 * df.f22 * df.f23)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22014350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档