1 回答
TA贡献1982条经验 获得超2个赞
你可以这样做:
示例数据框:
In [31]: df1
Out[31]:
A B
0 2 6
1 5 1
2 7 3
3 1 2
4 9 7
5 4 7
6 3 4
7 8 9
In [36]: df2
Out[36]:
A B A_bin B_bin C D E
0 2 6 1 2 5 4 1
1 5 1 2 1 2 2 4
2 7 3 3 1 5 1 7
3 1 2 1 1 8 4 9
4 9 7 3 3 5 5 8
5 4 7 2 3 1 8 5
6 3 4 1 2 2 9 3
7 8 9 3 3 4 6 2
有一个变量count和一个空字典来动态存储新的数据帧。
count = 0
d = dict()
我已经使用您的逻辑根据df1.
for col in df2.columns:
print(col)
l = df1.shape[1]
if count < l:
d[col] = df2[ df2.iloc[:, count + l] == 1 ]
count += 1
这会遍历 的列,df2直到变量count小于 的列数df1。它过滤第 3 和第 4 列(根据您的示例)的行,其值为1和 存储在字典中d。
现在,您可以遍历您的字典并找到您想要的新数据框:
In [52]: for key in d.keys():
...: print(d[key][d[key].columns.drop(list(d[key].filter(regex='bin')))])
A B C D E
0 2 6 5 4 1
3 1 2 8 4 9
6 3 4 2 9 3
A B C D E
1 5 1 2 2 4
2 7 3 5 1 7
3 1 2 8 4 9
因此,您不必担心确切的列名称。如果这有帮助,请告诉我。
添加回答
举报