Из того, что я вижу, вы хотите объединить ваши столбцы Date
, чтобы в первом столбце Date
не было пропущенных значений.
Вот входные данные
df = pd.read_clipboard()
print(df)
Date Count Date.1 Count.1 Date.2 Count.2 Date.3 Count.3
0 1/1/2019 1.0 1/1/2019 1.0 NaN NaN 1/1/2019 1.0
1 1/2/2019 1.0 1/2/2019 1.0 1/2/2019 1.0 1/2/2019 1.0
2 1/3/2019 1.0 1/3/2019 1.0 1/3/2019 1.0 1/3/2019 1.0
3 NaN NaN 1/4/2019 1.0 1/4/2019 1.0 1/4/2019 1.0
4 1/5/2019 1.0 1/5/2019 1.0 1/5/2019 1.0 1/5/2019 1.0
5 1/6/2019 1.0 1/6/2019 1.0 1/6/2019 1.0 NaN NaN
6 NaN NaN 1/7/2019 1.0 1/7/2019 1.0 1/7/2019 1.0
7 1/8/2019 1.0 1/8/2019 1.0 NaN NaN 1/8/2019 1.0
8 1/9/2019 1.0 1/9/2019 1.0 1/9/2019 1.0 1/9/2019 1.0
9 NaN NaN NaN NaN 1/10/2019 1.0 1/10/2019 1.0
10 1/11/2019 1.0 1/11/2019 1.0 1/11/2019 1.0 1/11/2019 1.0
11 1/12/2019 1.0 1/12/2019 1.0 1/12/2019 1.0 1/12/2019 1.0
12 1/13/2019 1.0 1/13/2019 1.0 1/13/2019 1.0 NaN NaN
И один из возможных подходов состоит в том, чтобы затем заполнить столбец Date
NaN
s другими столбцами Date
по одному (в этом подходе Date.3
не требуется)
df['Date'].fillna(df['Date.1'], inplace=True)
df['Date'].fillna(df['Date.2'], inplace=True)
df = df.drop(['Date.1','Date.2','Date.3'], axis=1)
Выход
print(df)
Date Count Count.1 Count.2 Count.3
0 1/1/2019 1.0 1.0 NaN 1.0
1 1/2/2019 1.0 1.0 1.0 1.0
2 1/3/2019 1.0 1.0 1.0 1.0
3 1/4/2019 NaN 1.0 1.0 1.0
4 1/5/2019 1.0 1.0 1.0 1.0
5 1/6/2019 1.0 1.0 1.0 NaN
6 1/7/2019 NaN 1.0 1.0 1.0
7 1/8/2019 1.0 1.0 NaN 1.0
8 1/9/2019 1.0 1.0 1.0 1.0
9 1/10/2019 NaN NaN 1.0 1.0
10 1/11/2019 1.0 1.0 1.0 1.0
11 1/12/2019 1.0 1.0 1.0 1.0
12 1/13/2019 1.0 1.0 1.0 NaN