AttributeError 是否正常工作 pandas df
Is AttributeError working as it should pandas df
尝试使用以下代码从 pd 数据框中的两列之一添加数字(浮点型):
"""
creating dict of {symbol:[spot, aggregate]
"""
abn_dict = defaultdict(lambda: [0, 0])
for (col, row) in abn_df.iterrows():
try:
row.loc["Quantity Long"].isnull()
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Short"]
except AttributeError:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Long"]
如果 quantity long 列为 NaN,则应将 quantity short 添加到 abn_dict 值中的第二个元素。
然而,这不适用于上面的代码,想问问为什么。
实际上,您的代码中没有条件。此外,根据 documentation、pandas.DataFrame.iterrows()
returns(索引、行)、注释(列、行)。
尝试这样重构:
for _, row in abn_df.iterrows():
if row.loc["Quantity Long"]:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Short"]
else:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Long"]
尝试使用以下代码从 pd 数据框中的两列之一添加数字(浮点型):
"""
creating dict of {symbol:[spot, aggregate]
"""
abn_dict = defaultdict(lambda: [0, 0])
for (col, row) in abn_df.iterrows():
try:
row.loc["Quantity Long"].isnull()
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Short"]
except AttributeError:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Long"]
如果 quantity long 列为 NaN,则应将 quantity short 添加到 abn_dict 值中的第二个元素。
然而,这不适用于上面的代码,想问问为什么。
实际上,您的代码中没有条件。此外,根据 documentation、pandas.DataFrame.iterrows()
returns(索引、行)、注释(列、行)。
尝试这样重构:
for _, row in abn_df.iterrows():
if row.loc["Quantity Long"]:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Short"]
else:
abn_dict[row.loc["Symbol"]][1] += row.loc["Quantity Long"]