根据另一个数据库的内容筛选数据库



所以我需要为没有受保护属性的特性分配一个新的数据帧;我得到了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

最新更新