python - 怎么对dataframe中筛选过的数据进行计算
PHP中文网
PHP中文网 2017-04-18 09:47:44
0
2
589

要求:对已生成的一组dataframe数据列,需要根据日期做条件判断,对不同日期范围的数据,以不同的规则进行数据类运算,运算结果添加至一个新的列。

...
a=pd.DataFrame(data1,columns=['end_date','province','price']) #数组a
b=pd.DataFrame(data2,columns=['province','index_2013','index_2014','index_2015','index_2016'])#数据b
c=pd.merge(a,b,on='province') #以province进行连接

if a['end_date']<= datetime.strptime('2013-12-31','%Y-%m-%d').date(): #判断日期小于13年

c['axp']=c['price']c['index_2013'] #数据c添加列,数据值=priceindex_2013
print c

对if语句行报错,报错如下:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

在报错行,条件后添加.any()或者.all()则报错消失,但得到的数据不是想要的结果如:if a['end_date'].any()<= datetime。。。 则不报错

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
迷茫

apply 함수를 사용하여 데이터프레임 개체에 대해 수평 또는 수직 계산을 수행할 수 있습니다.
예를 들어 c의 첫 번째 열에 if를 수행하고 마지막 두 열의 몫을 계산한다고 가정합니다. 🎜> 으아아아

이때 Series 객체인 필터링 조건을 만족하는 계산 결과를 얻을 수 있습니다

Ty80

기본적인 Python 질문입니다.

으아악

시리즈의 벡터화된 계산은 여전히 ​​시리즈를 반환합니다. 시리즈는 np 배열이며 실제 값을 반환하는 방법을 제공하지 않습니다. .any(), .all()을 사용한 후에만 비교가 가능합니다.

그런 다음 Pandas 문서를 주의 깊게 살펴보세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿