【问题标题】:How can I extract data using the 'groupby'如何使用“groupby”提取数据
【发布时间】:2016-08-28 19:50:26
【问题描述】:
import pandas as pd

df= pd.DataFrame({'date':[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5],
     'name':list('aaaaabbbbbccccc'),
     'v1':[10,20,30,40,50,10,20,30,40,50,10,20,30,40,50],
     'v2':[10,20,30,40,50,10,20,30,40,50,10,20,30,40,50],
     'v3':[10,20,30,40,50,10,20,30,40,50,10,20,30,40,50]})

a= list(set(list(df.name)))
plus=[]
for i in a:
    sep=df[df.name==i]
    sep2=sep[(sep.v1>=10)&(sep.v2>=20)&(sep.v3<=40)]
    plus.append(sep2)
result=pd.concat(plus)
print(result)

我知道这不是一个很好的例子,

我想按名称单独处理。

在大数据中花费的时间太长

如何使用“groupby”提取数据?

如果使用函数就更好了(def..apply...)

df.groupby(['name'])(df['v1']&gt;20)...????它不能工作......

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    查看你想要的数据集我认为你不需要groupby你的df,你可以简单地过滤它:

    In [112]: df.query('v1 >= 10 and v2 >= 20 and v3 <= 40')
    Out[112]:
        date name  v1  v2  v3
    1      2    a  20  20  20
    2      3    a  30  30  30
    3      4    a  40  40  40
    6      2    b  20  20  20
    7      3    b  30  30  30
    8      4    b  40  40  40
    11     2    c  20  20  20
    12     3    c  30  30  30
    13     4    c  40  40  40
    

    【讨论】:

      猜你喜欢
      • 2020-04-17
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多