数据操作任务中经常会出现具有多个条件的复杂选择标准。 Pandas 提供了有效处理这些场景的方法和习惯用法。
示例:
考虑以下 DataFrame:
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
问题:
从“A”中选择值其中“B”对应的值大于 50,而“C”不等于 900。
解决方案:
我们可以应用列运算来获得布尔系列每个条件的对象:
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
或等效地:
(df["B"] > 50) & ~(df["C"] == 900)
这些布尔系列可以用于索引到 DataFrame:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
或者使用 .loc:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
注意:
对于写访问,建议使用.loc而不是链接索引,因为后者可能会产生视图而不是副本,从而导致潜在的问题。
以上是如何从具有多个复杂条件的 Pandas DataFrame 中高效选择数据?的详细内容。更多信息请关注PHP中文网其他相关文章!