[英]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().
可能是什么问题呢?
您可以致电dropna
来实现此目的:
df1 = df.dropna()
至于为什么尝试失败or
运算符不理解在比较类似数组的结构时的原因,因为如果1个或多个元素满足布尔条件则模棱两可,则应使用按位运算符&
, |
和~
代表and
, or
而not
代表。 另外,对于多个条件,由于运算符的优先级,您需要将条件包装在括号中。
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.