簡體   English   中英

用條件計算數據框中的行數

[英]count number of rows in a dataframe with conditions

我在代碼中有一些問題,我想填充一個數據框,這取決於另一個。 為了解釋一下,在數據框中,我替換了用代碼分類的組件以了解它們的具體位置。 我希望能夠計算出我有多少替代品並將這個數字放在另一個數據框中。 我的這部分代碼看起來像這樣:

import plotly.express as px

import pandas as pd

import numpy as np

#import excel from database

d=pd.read_excel("replacements.xlsx")
df=pd.DataFrame(d)

#我們創建了3個dataframe,分別放置了替換次數、百分比和失敗率。這里,我們關注替換次數,因為這將是另一個過程來填充其他人。

tab_nb_replacements=pd.DataFrame(columns=['electrical auxiliary power supply','process monitoring','wind turbine system','generator system','transmission of electrical energy','structures connected to production','auxiliary systems'], index=['falaise_nb_replacements',...,'quittebeuf_nb_replacements])
如您所見,只顯示了一些 ligns。 下面,我將所有索引 'falaise_nb_replacements' 都填充為零(我也為所有索引做了它)。
tab_nb_replacements['electrical auxiliary power supply']['falaise_nb_replacements']=np.where(((df['RDSPP code'].str[:1]=='B') & (df['WTName']=='Falaise')),tab_nb_replacements['electrical auxiliary power supply']['falaise_nb_replacements']+1,tab_nb_replacements['electrical auxiliary power supply']['falaise_nb_replacements'])

########### 我嘗試了不同的方法來獲取替換次數######

##注意:對於站點 falaise,當“RDSPP 代碼”列中的值以“B”開頭且“WTName”列中的值為“Falaise”時,我們希望選擇一個對齊。

##第一種方法

tab_nb_replacements['electrical auxiliary power supply']['falaise_nb_replacements']=(df[df['RDSPP code'].str[:1]=='B' and df['WTName']=='Falaise']).count()

#第二種方法

"ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."

#第三種方法

tab_nb_replacements['electrical auxiliary power supply']['falaise_nb_replacements']=(df[df['RDSPP code'].str[:1]=='B' and df['WTName']=='Falaise']).count()

這些方法中的任何一種都給了我結果。 確實通過這些方法,我獲得了:

 "ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."

如果有人有解決方案或一些建議,那將非常有幫助!

最好的,

對於您提到的第三種方法df['WTName']=='Falaise'會出錯,因為df['WTName']的數據類型是pandas.series並且您無法將其與string進行比較。 因此,您必須將其轉換為如下所示的字符串:

df['WTName'].astype(str) == 'Falaise'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM