回答編集履歴
1
修正
answer
CHANGED
@@ -1,7 +1,43 @@
|
|
1
1
|
欲しい結果は以下のようなものでしょうか。
|
2
|
+
|
2
3
|
```Python
|
3
4
|
import pandas as pd
|
4
5
|
|
6
|
+
df1 = pd.DataFrame({'Date1':['2019-01-01','2019-01-02','2019-01-03'], 'value1':[1,2,3]})
|
7
|
+
df2 = pd.DataFrame({'Date2':['2019-01-01','2019-01-03'], 'value2':[10,30]})
|
8
|
+
df1['Date1'] = pd.to_datetime(df1['Date1'])
|
9
|
+
df2['Date2'] = pd.to_datetime(df2['Date2'])
|
10
|
+
print(df1)
|
11
|
+
# Date1 value1
|
12
|
+
#0 2019-01-01 1
|
13
|
+
#1 2019-01-02 2
|
14
|
+
#2 2019-01-03 3
|
15
|
+
print(df2)
|
16
|
+
# Date2 value2
|
17
|
+
#0 2019-01-01 10
|
18
|
+
#1 2019-01-03 30
|
19
|
+
|
20
|
+
# 両方に存在する日付のみ抽出
|
21
|
+
s = set(df1['Date1']) & set(df2['Date2'])
|
22
|
+
|
23
|
+
df1 = df1[df1['Date1'].isin(s)]
|
24
|
+
print(df1)
|
25
|
+
# Date1 value1
|
26
|
+
#0 2019-01-01 1
|
27
|
+
#2 2019-01-03 3
|
28
|
+
|
29
|
+
df2 = df2[df2['Date2'].isin(s)]
|
30
|
+
print(df2)
|
31
|
+
# Date2 value2
|
32
|
+
#0 2019-01-01 10
|
33
|
+
#1 2019-01-03 30
|
34
|
+
```
|
35
|
+
|
36
|
+
質問修正前の回答
|
37
|
+
-----
|
38
|
+
```Python
|
39
|
+
import pandas as pd
|
40
|
+
|
5
41
|
df = pd.DataFrame({'Date1':['2019-01-01','2019-01-03',''], 'Date2':['2019-01-01','2019-01-02','2019-01-03']})
|
6
42
|
df['Date1'] = pd.to_datetime(df['Date1'])
|
7
43
|
df['Date2'] = pd.to_datetime(df['Date2'])
|