У меня есть столбец в DataFrame с именем both_ntf
, например:
column1
411.1
104.5-105.6
167.3-166.9
254
399
373.5
Мой ожидаемый результат:
column1 column2 column3
411.1 411.1 NaN
104.5-105.6 104.5 105.6
167.3-166.9 167.3 166.9
254 254 NaN
399 399 NaN
Оператор if
, который я сделал, кажется, не работает.
if '-' in both_ntf['column1']:
print("if")
rng_ntf = both_ntf[both_ntf['column1'].str.contains("-", na=False)]
rng_ntf[['column2','column3']] =rng_ntf.column1.str.split("-",expand=True)
#Add
filtered_ntf = rng_ntf
elif '-' not in both_ntf['column1']:
print("elif")
nrng_ntf = both_ntf[~both_ntf['column1'].str.contains("-", na=False)]
nrng_ntf['column2'] = nrng_ntf['column1']
filtered_ntf = filtered_ntf.append(nrng_ntf, sort=True)
Как видите, rng_ntf
и nrng_ntf
- это временные фреймы данных, которые затем добавляются к новому фрейму данных filtered_ntf
. Надеюсь сделать это эффективнее и быстрее.