【问题标题】:Skip Empty cell Python Pandas跳过空单元 Python Pandas
【发布时间】:2021-06-21 17:56:39
【问题描述】:

我正在编写一个脚本来计算具有特定值的单元格的百分比。但是,当它计算行数时,它不会计算出 NaN 的单元格。基本上我不希望脚本将值 NaN 的单元格计数为一行。我已经尝试了 != "" 的所有内容 给.isnan

我试图做的是计算具有特定值的单元格的百分比,如果函数计算具有 NaN 值的行,这是不可能的。

相关代码

df2 = pd.DataFrame(supplier_data_df, columns=['supplier keywords', 'supplier in ocr']) 

total_suppliers = df2[(df2["supplier in ocr"] != "") & (df2["supplier keywords"] != "")] 

percentilesupplierkeyword = len(supplier_filtered_df)/len(total_suppliers) * 100 

print(percentilesupplierkeyword,"% of supplier-keywords have an issue") 

提前谢谢你。

【问题讨论】:

  • 您能否向我们展示您迄今为止尝试过的脚本示例,以及示例 DataFrame 和预期输出?
  • 您可能想使用pd.notnull进行选择
  • @DerekO 当然。不幸的是,我无法提供整个脚本,但我会写相关部分。 ``` df2 = pd.DataFrame(supplier_data_df, columns=['supplier keywords', 'supplier in ocr']) total_suppliers = df2[(df2["supplier in ocr"] != "") & (df2["supplier关键字"] != "")] percentilesupplierkeyword = len(supplier_filtered_df)/len(total_suppliers) * 100 print(percentilesupplierkeyword,"% 的供应商关键字有问题") ```
  • @MrFuppes 谢谢,但我得到的输出是 total_suppliers 等于零,这导致除以零。不知道为什么它说它的值为零。

标签: python pandas


【解决方案1】:

我希望你做得很好。 您可以考虑删除 NaN 值或将它们从数据框中排除,然后执行以下计算。

如果你想删除 NaN 值

df2.dropna(inplace=True)

或者您可以使用 fillna 方法将 nan 值填充为 0。

df2.fillna(0, inplace=True)

如果要获取nan值的索引列表

df2[df2["col1"].isna()].index.tolist()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多