Вы можете попробовать что-то вроде ниже:
items = ['Time', 'Type', 'Price', 'Id']
for index, item in enumerate(items):
df[item] = df['Descriptive'].apply(lambda row: row.split(' ')[index].split(item)[1])
print(df)
Результат:
Date Descriptive Time Type Price Id
0 2017-1-1 Time12:30 Type021 Price11$ Id124562 12:30 021 11$ 124562
1 2017-1-2 Time12:40 Type011 Price11$ Id12456512 12:40 011 11$ 12456512
2 2017-1-3 Time12:45 Type031 Price11$ Id12456125 12:45 031 11$ 12456125
Если цикл for
сбивает с толку, вы можете попробовать применить без цикла:
df['Time'] = df['Descriptive'].apply(lambda row: row.split(' ')[0].split('Time')[1])
df['Type'] = df['Descriptive'].apply(lambda row: int(row.split(' ')[1].split('Type')[1]))
df['Price'] = df['Descriptive'].apply(lambda row: row.split(' ')[2].split('Price')[1])
df['Id'] = df['Descriptive'].apply(lambda row: row.split(' ')[3].split('Id')[1])