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
因此,您不必擔心確切的列名稱。如果這有幫助,請告訴我。
添加回答
舉報