'Merge multiple date columns and drop the not needed date columns
I have the following dataframe:
pd.Dataframe({'Col1': {0: '04/01/2021',
1: '04/01/2021',
2: '04/01/2021',
3: '04/01/2021',
4: '04/01/2021',
5: '05/01/2021',
6: '05/01/2021',
7: '05/01/2021',
8: '06/01/2021',
9: '06/01/2021',
10: '06/01/2021',
11: '06/01/2021',
12: '06/01/2021',
13: '06/01/2021',
14: '06/01/2021',
15: '06/01/2021',
16: '07/01/2021',
17: '07/01/2021',
18: '07/01/2021',
19: '07/01/2021',
20: '07/01/2021',
21: '07/01/2021',
22: '07/01/2021',
23: '08/01/2021',
24: '08/01/2021',
25: '08/01/2021',
26: '08/01/2021',
27: '08/01/2021',
28: '08/01/2021',
29: '08/01/2021',
30: '08/01/2021',
31: '08/01/2021',
32: '08/01/2021',
33: '08/01/2021',
34: '08/01/2021',
35: '08/01/2021',
36: '08/01/2021',
37: '08/01/2021',
38: '11/01/2021',
39: '11/01/2021',
40: '11/01/2021',
41: '11/01/2021',
42: '11/01/2021',
43: '11/01/2021',
44: '11/01/2021',
45: '11/01/2021',
46: '11/01/2021',
47: '11/01/2021',
48: '11/01/2021',
49: '11/01/2021',
50: '11/01/2021',
51: '11/01/2021',
52: '11/01/2021',
53: '11/01/2021',
54: '12/01/2021',
55: '12/01/2021',
56: '12/01/2021',
57: '12/01/2021',
58: '12/01/2021',
59: '12/01/2021',
60: '12/01/2021',
61: '12/01/2021',
62: '12/01/2021',
63: '12/01/2021',
64: '12/01/2021',
65: '12/01/2021',
66: '12/01/2021',
67: '12/01/2021',
68: '12/01/2021',
69: '12/01/2021',
70: '12/01/2021',
71: '13/01/2021',
72: '13/01/2021',
73: '13/01/2021',
74: '13/01/2021',
75: '13/01/2021',
76: '13/01/2021',
77: '13/01/2021',
78: '13/01/2021',
79: '13/01/2021',
80: '13/01/2021',
81: '13/01/2021',
82: '14/01/2021',
83: '14/01/2021',
84: '14/01/2021',
85: '14/01/2021',
86: '14/01/2021',
87: '14/01/2021',
88: '14/01/2021',
89: '14/01/2021',
90: '14/01/2021',
91: '14/01/2021',
92: '14/01/2021',
93: '14/01/2021',
94: '14/01/2021',
95: '14/01/2021',
96: '14/01/2021',
97: '14/01/2021',
98: '14/01/2021',
99: '14/01/2021',
100: '15/01/2021',
101: '15/01/2021',
102: '15/01/2021',
103: '15/01/2021',
104: '15/01/2021',
105: '15/01/2021',
106: nan,
107: nan},
'Col2': {0: 17.0,
1: 93.0,
2: 76.0,
3: 93.0,
4: 72.0,
5: 52.0,
6: 97.0,
7: 78.0,
8: 38.0,
9: 42.0,
10: 40.0,
11: 25.0,
12: 18.0,
13: 23.0,
14: 69.0,
15: 12.0,
16: 5.0,
17: 82.0,
18: 92.0,
19: 98.0,
20: 85.0,
21: 39.0,
22: 37.0,
23: 84.0,
24: 79.0,
25: 40.0,
26: 46.0,
27: 92.0,
28: 53.0,
29: 92.0,
30: 60.0,
31: 36.0,
32: 19.0,
33: 100.0,
34: 36.0,
35: 39.0,
36: 48.0,
37: 59.0,
38: 78.0,
39: 30.0,
40: 22.0,
41: 41.0,
42: 71.0,
43: 73.0,
44: 34.0,
45: 91.0,
46: 47.0,
47: 15.0,
48: 75.0,
49: 2.0,
50: 82.0,
51: 68.0,
52: 46.0,
53: 85.0,
54: 100.0,
55: 93.0,
56: 13.0,
57: 12.0,
58: 14.0,
59: 35.0,
60: 27.0,
61: 75.0,
62: 49.0,
63: 100.0,
64: 98.0,
65: 19.0,
66: 50.0,
67: 88.0,
68: 85.0,
69: 47.0,
70: 91.0,
71: 24.0,
72: 45.0,
73: 86.0,
74: 80.0,
75: 70.0,
76: 73.0,
77: 47.0,
78: 65.0,
79: 19.0,
80: 30.0,
81: 43.0,
82: 73.0,
83: 10.0,
84: 57.0,
85: 3.0,
86: 56.0,
87: 76.0,
88: 51.0,
89: 65.0,
90: 94.0,
91: 23.0,
92: 78.0,
93: 24.0,
94: 94.0,
95: 74.0,
96: 95.0,
97: 11.0,
98: 1.0,
99: 90.0,
100: 78.0,
101: 20.0,
102: 11.0,
103: 69.0,
104: 75.0,
105: 33.0,
106: nan,
107: nan},
'Col3': {0: '06/01/2021',
1: '06/01/2021',
2: '06/01/2021',
3: '06/01/2021',
4: '06/01/2021',
5: '06/01/2021',
6: '06/01/2021',
7: '07/01/2021',
8: '07/01/2021',
9: '07/01/2021',
10: '07/01/2021',
11: '07/01/2021',
12: '07/01/2021',
13: '07/01/2021',
14: '08/01/2021',
15: '11/01/2021',
16: '11/01/2021',
17: '11/01/2021',
18: '11/01/2021',
19: '11/01/2021',
20: '11/01/2021',
21: '11/01/2021',
22: '11/01/2021',
23: '11/01/2021',
24: '12/01/2021',
25: '12/01/2021',
26: '12/01/2021',
27: '12/01/2021',
28: '12/01/2021',
29: '12/01/2021',
30: '12/01/2021',
31: '12/01/2021',
32: '12/01/2021',
33: '12/01/2021',
34: '12/01/2021',
35: '12/01/2021',
36: '12/01/2021',
37: '12/01/2021',
38: '12/01/2021',
39: '12/01/2021',
40: '12/01/2021',
41: '13/01/2021',
42: '13/01/2021',
43: '13/01/2021',
44: '13/01/2021',
45: '06/01/2021',
46: '07/01/2021',
47: '07/01/2021',
48: '07/01/2021',
49: '07/01/2021',
50: '07/01/2021',
51: '07/01/2021',
52: '07/01/2021',
53: '08/01/2021',
54: '08/01/2021',
55: '08/01/2021',
56: '08/01/2021',
57: '08/01/2021',
58: '08/01/2021',
59: '08/01/2021',
60: '08/01/2021',
61: '08/01/2021',
62: '08/01/2021',
63: '08/01/2021',
64: '08/01/2021',
65: '08/01/2021',
66: '08/01/2021',
67: '08/01/2021',
68: '06/01/2021',
69: '06/01/2021',
70: '07/01/2021',
71: '07/01/2021',
72: '07/01/2021',
73: '07/01/2021',
74: '07/01/2021',
75: '07/01/2021',
76: '07/01/2021',
77: '08/01/2021',
78: '08/01/2021',
79: '08/01/2021',
80: '08/01/2021',
81: '08/01/2021',
82: '08/01/2021',
83: '08/01/2021',
84: '08/01/2021',
85: '08/01/2021',
86: '08/01/2021',
87: '08/01/2021',
88: '08/01/2021',
89: nan,
90: nan,
91: nan,
92: nan,
93: nan,
94: nan,
95: nan,
96: nan,
97: nan,
98: nan,
99: nan,
100: nan,
101: nan,
102: nan,
103: nan,
104: nan,
105: nan,
106: nan,
107: nan},
'Col4': {0: 40.0,
1: 45.0,
2: 63.0,
3: 10.0,
4: 52.0,
5: 71.0,
6: 24.0,
7: 44.0,
8: 10.0,
9: 64.0,
10: 43.0,
11: 5.0,
12: 34.0,
13: 63.0,
14: 86.0,
15: 81.0,
16: 81.0,
17: 4.0,
18: 25.0,
19: 68.0,
20: 48.0,
21: 68.0,
22: 33.0,
23: 32.0,
24: 70.0,
25: 10.0,
26: 11.0,
27: 70.0,
28: 44.0,
29: 75.0,
30: 80.0,
31: 52.0,
32: 67.0,
33: 27.0,
34: 38.0,
35: 49.0,
36: 26.0,
37: 23.0,
38: 95.0,
39: 9.0,
40: 29.0,
41: 47.0,
42: 19.0,
43: 21.0,
44: 88.0,
45: 81.0,
46: 95.0,
47: 62.0,
48: 32.0,
49: 75.0,
50: 82.0,
51: 39.0,
52: 43.0,
53: 55.0,
54: 70.0,
55: 50.0,
56: 82.0,
57: 5.0,
58: 2.0,
59: 89.0,
60: 100.0,
61: 43.0,
62: 61.0,
63: 43.0,
64: 68.0,
65: 41.0,
66: 76.0,
67: 49.0,
68: 12.0,
69: 36.0,
70: 13.0,
71: 54.0,
72: 64.0,
73: 66.0,
74: 19.0,
75: 45.0,
76: 66.0,
77: 51.0,
78: 47.0,
79: 92.0,
80: 90.0,
81: 79.0,
82: 69.0,
83: 67.0,
84: 72.0,
85: 13.0,
86: 50.0,
87: 12.0,
88: 69.0,
89: nan,
90: nan,
91: nan,
92: nan,
93: nan,
94: nan,
95: nan,
96: nan,
97: nan,
98: nan,
99: nan,
100: nan,
101: nan,
102: nan,
103: nan,
104: nan,
105: nan,
106: nan,
107: nan},
'Col5': {0: '12/01/2021',
1: '12/01/2021',
2: '12/01/2021',
3: '12/01/2021',
4: '12/01/2021',
5: '12/01/2021',
6: '12/01/2021',
7: '12/01/2021',
8: '12/01/2021',
9: '13/01/2021',
10: '13/01/2021',
11: '13/01/2021',
12: '13/01/2021',
13: '13/01/2021',
14: '13/01/2021',
15: '13/01/2021',
16: '13/01/2021',
17: '13/01/2021',
18: '13/01/2021',
19: '13/01/2021',
20: '14/01/2021',
21: '14/01/2021',
22: '14/01/2021',
23: '14/01/2021',
24: '14/01/2021',
25: '14/01/2021',
26: '14/01/2021',
27: '14/01/2021',
28: '14/01/2021',
29: '14/01/2021',
30: '14/01/2021',
31: '14/01/2021',
32: '14/01/2021',
33: '14/01/2021',
34: '14/01/2021',
35: '14/01/2021',
36: '14/01/2021',
37: '14/01/2021',
38: '15/01/2021',
39: '15/01/2021',
40: '15/01/2021',
41: '15/01/2021',
42: '15/01/2021',
43: '15/01/2021',
44: nan,
45: nan,
46: nan,
47: nan,
48: nan,
49: nan,
50: nan,
51: nan,
52: nan,
53: nan,
54: nan,
55: nan,
56: nan,
57: nan,
58: nan,
59: nan,
60: nan,
61: nan,
62: nan,
63: nan,
64: nan,
65: nan,
66: nan,
67: nan,
68: nan,
69: nan,
70: nan,
71: nan,
72: nan,
73: nan,
74: nan,
75: nan,
76: nan,
77: nan,
78: nan,
79: nan,
80: nan,
81: nan,
82: nan,
83: nan,
84: nan,
85: nan,
86: nan,
87: nan,
88: nan,
89: nan,
90: nan,
91: nan,
92: nan,
93: nan,
94: nan,
95: nan,
96: nan,
97: nan,
98: nan,
99: nan,
100: nan,
101: nan,
102: nan,
103: nan,
104: nan,
105: nan,
106: nan,
107: nan},
'Col6': {0: 466.0,
1: 421.0,
2: 497.0,
3: 487.0,
4: 426.0,
5: 421.0,
6: 408.0,
7: 461.0,
8: 470.0,
9: 419.0,
10: 492.0,
11: 406.0,
12: 424.0,
13: 496.0,
14: 475.0,
15: 431.0,
16: 457.0,
17: 449.0,
18: 466.0,
19: 458.0,
20: 491.0,
21: 484.0,
22: 404.0,
23: 474.0,
24: 459.0,
25: 421.0,
26: 461.0,
27: 484.0,
28: 493.0,
29: 496.0,
30: 439.0,
31: 465.0,
32: 414.0,
33: 449.0,
34: 490.0,
35: 416.0,
36: 432.0,
37: 472.0,
38: 465.0,
39: 428.0,
40: 422.0,
41: 414.0,
42: 471.0,
43: 450.0,
44: nan,
45: nan,
46: nan,
47: nan,
48: nan,
49: nan,
50: nan,
51: nan,
52: nan,
53: nan,
54: nan,
55: nan,
56: nan,
57: nan,
58: nan,
59: nan,
60: nan,
61: nan,
62: nan,
63: nan,
64: nan,
65: nan,
66: nan,
67: nan,
68: nan,
69: nan,
70: nan,
71: nan,
72: nan,
73: nan,
74: nan,
75: nan,
76: nan,
77: nan,
78: nan,
79: nan,
80: nan,
81: nan,
82: nan,
83: nan,
84: nan,
85: nan,
86: nan,
87: nan,
88: nan,
89: nan,
90: nan,
91: nan,
92: nan,
93: nan,
94: nan,
95: nan,
96: nan,
97: nan,
98: nan,
99: nan,
100: nan,
101: nan,
102: nan,
103: nan,
104: nan,
105: nan,
106: nan,
107: nan}})
Col1 is the master data column. I need to merge Col3 and Col5 dates, to the master column. The final dataframe should be the merging of Col3 and Col5, to Col1 (master date field), and the values of all those dates are maintained.
It will be ideal to automatically drop the date fields Col3 and Col5, and only the value fields maintained at the end.
Col1 (date) maps with values in Col2, Col3 (date) maps with values in Col4 and Col5 (date) maps with values in Col6.
Based on this, is there a simple Pandas code that can be applied to perform the above intended operation ?
Solution 1:[1]
I'm not sure what you mean with "merge" in this case. Your dates are not unique so I imagine you want to concatenate Col3/4 and Col5/6 to Col1/2 (renaming Col3 and Col5 in the process):
df = pd.DataFrame({'Col1': {0: '04/01/2021',
...
107: nan}})
df_12 = df[["Col1", "Col2"]].dropna()
df_34 = df[["Col3", "Col4"]].dropna()
df_34.columns = ["Col1", "Col4"]
df_56 = df[["Col5", "Col6"]].dropna()
df_56.columns = ["Col1", "Col6"]
df_new = pd.concat([df_12, df_34, df_56], ignore_index=True)
print(df_new)
Output:
Col1 Col2 Col4 Col6
0 04/01/2021 17.0 NaN NaN
1 04/01/2021 93.0 NaN NaN
2 04/01/2021 76.0 NaN NaN
3 04/01/2021 93.0 NaN NaN
4 04/01/2021 72.0 NaN NaN
.. ... ... ... ...
234 15/01/2021 NaN NaN 428.0
235 15/01/2021 NaN NaN 422.0
236 15/01/2021 NaN NaN 414.0
237 15/01/2021 NaN NaN 471.0
238 15/01/2021 NaN NaN 450.0
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tranbi |
