【发布时间】:2020-05-31 14:29:59
【问题描述】:
可以在此处找到部分答案 (How to select rows from a DataFrame based on column values?),但它仅适用于一列。我想知道如何将它应用于多列(在本例中为两列)中的配对值。
我有一个数据框 df,其中过滤列是 B 和 C(NaN 表示空单元格):
A B C D
0 1 Blue Green 4
1 2 Blue Green 6
2 3 Blue Green 2
3 4 Blue NaN 6
4 5 Blue NaN 9
5 6 NaN Green 8
6 7 Blue Green 8
7 8 NaN NaN 9
8 9 NaN Green 1
9 10 NaN Green 2
我只想保留 B='Blue' 和 C='Green' 的 B 和 C 的行,所有其他行都可以删除,理想情况下会产生:
A B C D
0 1 Blue Green 4
1 2 Blue Green 6
2 3 Blue Green 2
6 7 Blue Green 8
有什么想法吗?
数据框代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9,10], "B": ['Blue', 'Blue', 'Blue', 'Blue','Blue', np.nan,
'Blue', np.nan, np.nan, np.nan], "C": ['Green', 'Green', 'Green', np.nan, np.nan, 'Green', 'Green',
np.nan, 'Green', 'Green'], "D": [4,6,2,6,9,8,8,9,1,2]})
print(df)
【问题讨论】:
-
第二个答案 - this
-
抱歉,之前没有看到多条件选项。谢谢!
-
没问题,这是常见的欺骗问题。