В этом примере я получаю данные в виде строки и использовал split(' ')
. Вы можете использовать sep=' '
для получения данных из CSV-файла. Также я использовал регулярное выражение, вам нужно импортировать его как import re
data = '76.76% @ 26.2° C D: 20.7° C G/KG: 15.5'
data = data.split(' ')
data = [re.sub("[^0-9.]", "", x) for x in data]
data = [x for x in data if x != '']
temp_dict = {}
for i, item in enumerate(data):
temp_dict[f'col_{i}'] = item
df = pd.DataFrame([temp_dict])
Вывод:
col_0 col_1 col_2 col_3
0 76.76 26.2 20.7 15.5
Обновление
Это может быть более полезным .
df[['col1', 'col2', 'col3', 'col4']] = df['Formatted Value'].str.extractall('(\d+.\d+)').unstack().loc[:, 0]
Обновление 2
Этот код работает с десятичными и целыми значениями.
df = pd.read_csv('test.csv')
my_list = df['Formatted Value'].apply(lambda x: re.findall(r'[\d\.\d]+', x))
d = {'Extractted': my_list}
temp_df = pd.DataFrame(d)
df[['col1', 'col2', 'col3', 'col4']] = pd.DataFrame(temp_df['Extractted'].values.tolist(), index=temp_df.index)