Python - 如何跳过 nan 遍历数据框列内的列表

Python - How to iterate through a list inside a dataframe column skiping the nan

我需要遍历数据框列中的列表。问题是有时我缺少值,这让我得到错误:“float' object is not iterable”。 我不想替换缺失值,所以我需要跳过它。我有一个拥抱数据框,但我只给你看一个小例子:

dic = {"E1x":[19.2, 20.7,5.2, 6.5,-2],"E2x": [-9,3,2.5,-4,5],"E1y":[-1,2,5,7,8], "E2y":[3,5,17,-20,15], "Ata":[[23,10], [5,7,3], [20,23], np.nan, [2,5]]}
df=pd.DataFrame(dic)

for i, row in df.iterrows():
    if row['Ata'] is not None:
        for e in row["Ata"]:
            print(e)

如何跳过 NaN 遍历“Ata”列?

您可以使用布尔索引:

mask = df["Ata"].notna()

for i, row in df[mask].iterrows():
    for e in row["Ata"]:
        print(e)

打印:

23
10
5
7
3
20
23
2
5

编辑:检查值是否为 list:

for i, row in df.iterrows():
    if isinstance(row["Ata"], list):
        for e in row["Ata"]:
            print(e)