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

要求:对已生成的一组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 を実行し、最後の 2 列の商を計算するとします。 🎜> リーリー

この時点で、フィルタリング条件を満たす計算結果が取得できます。これが Series オブジェクトです

いいねを押す +0
Ty80

これは Python の基本的な質問です。

リーリー

シリーズのベクトル化された計算は、依然としてシリーズを返します。シリーズは np 配列であり、true 値を返すメソッドを提供しません。比較は、.any().all() を使用した後にのみ可能です。

次に、Pandas のドキュメントを注意深く調べてください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!