teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/08/21 06:56

投稿

bsdfan
bsdfan

スコア4921

answer CHANGED
@@ -3,4 +3,32 @@
3
3
  #
4
4
  v_df2 = v_df[b_df[v_df.columns]]
5
5
  ```
6
- カラム名が重複していると色々面倒なことがあるので、重複をなくす方法を考える方がいいとは思います。
6
+ カラム名が重複していると色々面倒なことがあるので、重複をなくす方法を考える方がいいとは思います。
7
+
8
+ ### 追記
9
+ 私の環境では下記コードでちゃんと動作しています。
10
+ dtypeとか、index, columnsがあっているか確認してみてください。
11
+ ```python
12
+ import pandas as pd
13
+
14
+ b_df = pd.DataFrame(
15
+ {'c1': [True, True, True, False],
16
+ 'c2': [False, True, False, True],
17
+ 'c3': [True, True, False, True]},
18
+ index=['r1', 'r2', 'r3', 'r4'])
19
+
20
+ v_df = pd.DataFrame(
21
+ [[15,20, 3, 9, 16],
22
+ [7, 13, 1, 0, 22],
23
+ [3, 2, 10, 33, 4],
24
+ [28, 7, 11, 5, 19]],
25
+ index=['r1', 'r2', 'r3', 'r4'],
26
+ columns=['c1', 'c2', 'c1', 'c3', 'c2'])
27
+
28
+ print(v_df[b_df[v_df.columns]])
29
+ # c1 c2 c1 c3 c2
30
+ #r1 15.0 NaN 3.0 9.0 NaN
31
+ #r2 7.0 13.0 1.0 0.0 22.0
32
+ #r3 3.0 NaN 10.0 NaN NaN
33
+ #r4 NaN 7.0 NaN 5.0 19.0
34
+ ```