def compute(tick)。
df = pd.read_csv(f'{tick}.csv')
a = df.loc['a'].sum()。
b = df.loc['b'].sum()。
c = df.loc['c'].sum()
d = (a b) / c
return d
在一些資料框中沒有'b'行,所以它回傳KeyError。然后我嘗試了下面的代碼,但它不起作用,誰能幫我解決這個問題?
def compute(tick)。
df = pd.read_csv(f'{tick}.csv')
a = df.loc['a'].sum()
if df.loc['b'/span>].isnull():
b ==0
else:
b = df.loc['b'].sum()
c = df.loc['c'].sum()
d = (a b) / c
return d
uj5u.com熱心網友回復:
嘗試使用這個
def compute(tick)。
df = pd.read_csv(f'{tick}.csv'/span>)
if b in df.columns: #檢查列b是否存在。
b = df.loc['b'].sum()。
else:
b = 0.
a = df.loc['a'].sum()
c = df.loc['c'].sum()
d = (a b) / c
return d
uj5u.com熱心網友回復:
使用DataFrame.reindex來添加不存在的值a或b或c行,同時在df中只有3個過濾的行:
def compute(tick)。
df = pd.read_csv(f'{tick}.csv') 。 reindex(['a','b','c'], fill_value=0)
a = df.loc['a'].sum()。
b = df.loc['b'].sum()。
c = df.loc['c'].sum()
d = (a b) / c
return d
如果使用同一個函式3次,可以使用sum每軸=1:
def compute(tick)。
df = pd.read_csv(f'{tick}.csv') 。 reindex(['a','b','c'], fill_value=0)
abc = df.sum(axis=1)
a = abc.loc['a']
b = abc.loc['b']
c = abc.loc['c']
d = (a b) / c
return d
uj5u.com熱心網友回復:
怎么樣:-
def compute(tick)。
df = pd.read_csv(f'{tick}.csv')
a = df.loc['a'].sum()。
c = df.loc['c'].sum()
try:
return(a df.loc['b'/span>].sum() / c
except KeyError:
pass
return a / c
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/323847.html
標籤:
上一篇:Pandas創建了一個包含計算結果的新列,應用于多個列上。
下一篇:通過200個資料集進行迭代
