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)
我需要遍历数据框列中的列表。问题是有时我缺少值,这让我得到错误:“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)