繁体   English   中英

根据另一个dataFrame的某些列值制作一个熊猫dataFrame

[英]Making a pandas dataFrame based on some column values of another dataFrame

我有一个熊猫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().

可能是什么问题呢?

请尝试按位运算符| 相反,像这样:

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

根据dropna()建议,使用dropna()可能是这里最干净,最整洁的解决方案。 您可以在此处阅读更多有关此内容或处理缺失数据的信息

您可以致电dropna来实现此目的:

df1 = df.dropna()

至于为什么尝试失败or运算符不理解在比较类似数组的结构时的原因,因为如果1个或多个元素满足布尔条件则模棱两可,则应使用按位运算符&| ~代表andornot代表。 另外,对于多个条件,由于运算符的优先级,您需要将条件包装在括号中。

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

如果您确实有空单元格而不是NaN:

In [122]: df
Out[122]:
  Serial_N  year current
0        B  10.0    14.0
1        B  10.0    16.0
2        B  11.0    10.0
3        B  11.0
4        B  11.0    15.0
5        C  12.0    11.0
6        C           9.0
7        C  12.0    13.0
8        C  12.0

In [123]: a.replace('', np.nan).dropna()
Out[123]:
  Serial_N  year current
0        B  10.0    14.0
1        B  10.0    16.0
2        B  11.0    10.0
4        B  11.0    15.0
5        C  12.0    11.0
7        C  12.0    13.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM