【发布时间】: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']>20)...????它不能工作......
【问题讨论】:
标签: python python-3.x pandas dataframe