У меня есть CSV-файл, как это:
step,"agent, para1, para2 , para3 , para4, para5"
0,[[0 4 0 1.0645870290796624 7 0.23158113372309874]]
1,[[0 4 1 1.0645870290796624 7 0.23158113372309874]]
2,[[1 4 2 1.0645870290796624 7 0.23158113372309874] [0 4 2 1.0645870290796624 7 0.23158113372309874]]
3,[[0 4 3 1.0645870290796624 7 0.23158113372309874] [1 4 3 1.0645870290796624 7 0.23158113372309874]]
4,[[1 4 4 1.0645870290796624 7 0.23158113372309874] [0 4 4 1.0645870290796624 7 0.23158113372309874]]
5,[[1 4 5 1.0645870290796624 7 0.23158113372309874] [0 4 5 1.0645870290796624 7 0.23158113372309874]]
6,[[0 4 6 1.0645870290796624 7 0.23158113372309874] [1 4 6 1.0645870290796624 7 0.23158113372309874]]
7,[[0 4 7 1.0645870290796624 7 0.23158113372309874] [1 4 7 1.0645870290796624 7 0.23158113372309874]]
8,[[0 4 8 1.0645870290796624 7 0.23158113372309874] [1 4 8 1.0645870290796624 7 0.23158113372309874]]
9,[[0 4 9 1.0645870290796624 7 0.23158113372309874] [1 4 9 1.0645870290796624 7 0.23158113372309874]]
10,[[2 4 10 1.0645870290796624 7 0.23158113372309874] [3 4 10 1.0645870290796624 7 0.23158113372309874] [0 4 10 1.0645870290796624 7 0.23158113372309874] [1 4 10 1.0645870290796624 7 0.23158113372309874]]
и я хочу извлечь значение ряда в столбце «агент, пара1, пара2, пара3, пара4, пара5», чтобы я мог записать в новый файл CSV, и этот столбец содержит только 5 значений, которые смешаны с int и числа с плавающей запятой и начинающиеся с определенного числа, например, как следующее начинается с 0:
,step,"agent, para1, para2 , para3 , para4, para5"
0,0,0 4 0 1.0645870290796624 7 0.23158113372309874
1,1,0 4 1 1.0645870290796624 7 0.23158113372309874
2,2,0 4 2 1.0645870290796624 7 0.23158113372309874
3,3,0 4 3 1.0645870290796624 7 0.23158113372309874
4,4,0 4 4 1.0645870290796624 7 0.23158113372309874
5,5,0 4 5 1.0645870290796624 7 0.23158113372309874
6,6,0 4 6 1.0645870290796624 7 0.23158113372309874
7,7,0 4 7 1.0645870290796624 7 0.23158113372309874
8,8,0 4 8 1.0645870290796624 7 0.23158113372309874
9,9,0 4 9 1.0645870290796624 7 0.23158113372309874
И вот код, который я использую:
import pandas as pd
import numpy as np
df = pd.read_csv('input.csv')
df['agent, para1, para2 , para3 , para4, para5']=
df['agent, para1, para2 , para3 , para4, para5'].str.extract(r'(0\s\d\s\d\s\d\.\d+\s\d\s\d\.\d+)',expand=False)
df.to_csv('input-modified.csv')
Проблема в том, что input -ified.csv содержит только 10 строк данных, как показано выше, но файл input.csv составляет около 1G. Как я могу улучшить выражение для извлечения данных из всего файла?