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 值中的第二个元素。

然而,这不适用于上面的代码,想问问为什么。

实际上,您的代码中没有条件。此外,根据 documentationpandas.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"]