3 回答
TA贡献2003条经验 获得超2个赞
import pandas as pd
import numpy as np
# Sample data
d = np.array([[18, 1, 0, 1.0, 5.0, 0, 1],
[89, 3, 1, 1.0, 1.0, 1, 1],
[100, 4, 7, 0.0, 1.0, 1, 0],
[200, 0, 1, 0.0, 0.0, 1, 0],
[300, 1, 1, 0.0, 1.0, 1, 1],
[19, 1, 1, 1.0, 1.0, 6, 1]])
df = pd.DataFrame(data=d, columns = ['Age','Prod1','Prod2', 'Day 4', 'Day 5', 'Day 6', 'Region'])
df = df.drop(df[~df.loc[:, 'Prod1':'Region'].isin([0, 1]).all(axis=1)].index)
print(df)
应该给出预期的输出:
Age Prod1 Prod2 Day 4 Day 5 Day 6 Region
3 200.0 0.0 1.0 0.0 0.0 1.0 0.0
4 300.0 1.0 1.0 0.0 1.0 1.0 1.0
评论您的代码: 您的条件错误,但这不是您获得相同数据帧的原因。发生这种情况是因为您没有传递df.drop(prodindex)给变量,即:
# Your code
prodindex = df[ (df.loc['Prod1':'Region'] > 1) & (df.loc['Prod1':'Region'] < 0) ].index
df = df.drop(prodindex)
print(df)
Empty DataFrame
Columns: [Age, Prod1, Prod2, Day 4, Day 5, Day 6, Region]
Index: []
TA贡献1872条经验 获得超3个赞
如果您希望删除包含值 1 或 0 的行,请执行以下操作:
df.loc[~df.loc[:, 'Prod1':'Region'].isin([0, 1]).any(axis=1), :]
添加回答
举报