Skip to main content
 首页 » 编程设计

python之根据另一个数据帧的某些列值制作 Pandas 数据帧

2025年05月04日14yxwkf

我有一个包含以下内容的 pandas DataFrame df1:

Serial N         year         current 
   B              10            14 
   B              10            16 
   B              11            10 
   B              11             
   B              11            15 
   C              12            11 
   C                            9 
   C              12            13 
   C              12              

我想创建一个基于 df1 的 DataFrame,但它删除了任何包含空值的行。例如:

Serial N         year         current 
   B              10            14 
   B              10            16 
   B              11            10 
   B              11            15 
   C              12            11 
   C              12            13   

我试过这样的东西

df1=df[~np.isnan(df["year"]) or ~np.isnan(df["current"])] 

但我收到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

可能是什么问题?

请您参考如下方法:

您只需调用 dropna 即可实现此目的:

df1 = df.dropna() 

至于为什么您尝试的操作失败 或 运算符不理解在比较类似数组的结构时应该做什么,因为如果 1 个或多个元素满足 bool 标准,它是不明确的,您应该使用&、| 和 ~ 用于 and、or 和 不分别。此外,对于多个条件,由于运算符优先级,您需要将条件括在括号中。

In [4]: 
df.dropna() 
 
Out[4]: 
  Serial N  year  current 
0        B    10       14 
1        B    10       16 
2        B    11       10 
4        B    11       15 
5        C    12       11 
7        C    12       13