условие не добавлять суммы и даты в столбец

#python #pandas

#python #pandas

Вопрос:

    TTT
1. 802010001-999-00000285-888-
2. 256788
3. 1940
4. NaN
5. 10/1/2020  12:00:00 AM  
6. 702010001-X-2YZ-00000285-888-
  

Я хочу заполнить столбец GGT column всеми другими значениями, кроме сумм и дат

Требуемая таблица будет выглядеть следующим образом

    TTT                                GGT
1. 802010001-999-00000285-888-        802010001-999-00000285-888-
2. 256788                             NaN
3. 1940                               NaN
4. NaN                                NaN
5. 10/1/2020  12:00:00 AM             NaN
6. 702010001-X-2YZ-00000285-888-      702010001-X-2YZ-00000285-888-
  

исходная таблица содержит более 200 тысяч строк.

Ответ №1:

Используйте to_datetime with to_numeric с errors='coerce' для неверных значений, если совпадений нет, цепочка by | для побитового OR и передать Series.mask :

 m = (pd.to_datetime(df['TTT'], errors='coerce').notna() | 
     pd.to_numeric(df['TTT'], errors='coerce').notna())
df['GGT'] = df['TTT'].mask(m)
print (df)
                             TTT                            GGT
0    802010001-999-00000285-888-    802010001-999-00000285-888-
1                         256788                            NaN
2                           1940                            NaN
3                            NaN                            NaN
4         10/1/2020  12:00:00 AM                            NaN
5  702010001-X-2YZ-00000285-888-  702010001-X-2YZ-00000285-888-