所以我需要为没有受保护属性的特性分配一个新的数据帧;我得到了2个.csv,其中一个包含每个实例的所有信息,另一个如果属性是受保护的功能,则将每列标记为1,如果属性是要预测的值,则标记为2,否则标记为0。
我不完全确定该怎么做,因为我不是很精通,但据我所知,这将类似于
df = pd.read_csv("x.csv")
pdf = pd.read_csv("y.csv")
newDf = df.iloc[? && pdf[cols?]]
因此,给定两个具有相同标签的不同数据帧:
A B C
0 7 3 1
1 8 3 1
2 9 2 1
A B C
0 0 1 1
预期输出为:
A
0 7
1 8
2 9
您需要使用带否定的any来查找第二个数据帧(df2
(中具有0
值的所有列,并将其用作从df1
:获取的列列表
df[list(df.columns.to_series().loc[~df2.any()])]
输出:
A
0 7
1 8
2 9
以下是根据我对您问题的理解得出的结果,如果我错了,请告诉我。
df1:
A B C D
0 7 3 1 6
1 8 3 1 4
2 9 1 1 1
df2:
A B C D
0 0 1 1 0
df3=pd.DataFrame()
for i in df1.columns:
if df2[i][0]==0:
df3[i]=df1[i]
o/p:
df3:
A D
0 7 6
1 8 4
2 9 1