pandas 如何使用panda检测 Dataframe 中的#N/A(数据取自xlsx文件)?

4uqofj5v  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(301)

没有数据的空白单元格可以用以下方法检查:if pd.isna(dataframe.loc[index_name, column_name] == True)
但如果单元格有#N/A,则上述命令不起作用,dataframe.loc[index, column_name] == '#N/A'.
在阅读该单元格时,它显示NaN,但上面的代码不起作用。我的主要目标是捕获发布日期并将其存储在列表中。
第一次

ghhaqwfi

ghhaqwfi1#

如果你正在从电子表格中阅读 Dataframe tft(这里似乎就是这种情况),你可以使用pandas.read_excel的参数na_values将一些值(例如#N/A)视为NaN值,如下所示:

tft= pd.read_excel("path_to_the_file.xlsx", na_values=["#N/A"])

否则,如果您想保留那些#N/A值/字符串,可以按如下方式选中/选择它们:

tft.loc[tft["Release Data"].eq("#N/A")] #will return a dataframe

在第一个案例中,您的程式码如下所示:

rel_date= []

for i in range(len(tft)):
    if pd.isna(tft["Release Date"])
        continue
    else:
        rel_date.append(int(str(tft.loc[i, "Release Date"]).split()[1]))

但是,这里不需要循环,您可以使用以下代码列出发布日期:

rel_date= (
            tft["Release Date"]
                .str.extract(("Release (\d{8})"), expand=False)
                .dropna()
                .astype(int)
                .drop_duplicates()
                .tolist()
          )
print(rel_date)
[20220603, 20220610]

相关问题