从 pandas.DataFrame 中选择复杂条件
考虑以下 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”则不大于 50等于 900,我们可以利用 Pandas 的方法和习惯用法。
我们首先应用列运算来获取布尔 Series 对象:
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
这些 Series 代表我们感兴趣的条件。然后,我们可以使用以下条件对 DataFrame 进行索引来过滤数据:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
或者,我们可以使用.loc 来实现相同的结果:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
此方法提供更多控制并允许更可定制的索引体验。
生成的 DataFrame 将仅包含 'A' 的值满足指定条件。
以上是如何根据多个复杂标准从 pandas DataFrame 中选择数据?的详细内容。更多信息请关注PHP中文网其他相关文章!