我有一个pandas DataFrame df:

import pandas as pd

data = {"Name": ["AAAA", "BBBB"],
        "C1": [25, 12],
        "C2": [2, 1],
        "C3": [1, 10]}

df = pd.DataFrame(data)
df.set_index("Name")

打印时看起来像这样(供引用):
      C1  C2  C3
Name
AAAA  25   2   1
BBBB  12   1  10

我想选择C1C2C3的值在020之间的行。

您能否建议一种优雅的方式来选择这些行?

最佳答案

我认为下面应该这样做,但其优雅之处尚待争论。

new_df = old_df[((old_df['C1'] > 0) & (old_df['C1'] < 20)) & ((old_df['C2'] > 0) & (old_df['C2'] < 20)) & ((old_df['C3'] > 0) & (old_df['C3'] < 20))]

关于python - 根据pandas数据框中的多个列值选择行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29219011/

10-12 18:34