Python 将成对物并联而不是串联
我有一个txt,看起来像这样,有一组数据:Python 将成对物并联而不是串联,python,pandas,csv,Python,Pandas,Csv,我有一个txt,看起来像这样,有一组数据: C1,D1,E1,F1,G1,,,,, Layer_00 , 3.46ms,Layer_01 , 3.40ms,Layer_02 , 3.56ms,Layer_03 , 3.49ms,Layer_04 , 3.44ms Layer_05 , 3.45ms,Layer_06 , 3.44ms,Layer_07 , 3.46ms,Layer_08 , 3.45ms,Layer_09 , 3.48ms C2,D2,E2,F2,G2,,,,, Layer_00
C1,D1,E1,F1,G1,,,,,
Layer_00 , 3.46ms,Layer_01 , 3.40ms,Layer_02 , 3.56ms,Layer_03 , 3.49ms,Layer_04 , 3.44ms
Layer_05 , 3.45ms,Layer_06 , 3.44ms,Layer_07 , 3.46ms,Layer_08 , 3.45ms,Layer_09 , 3.48ms
C2,D2,E2,F2,G2,,,,,
Layer_00 , 3.42ms,Layer_01 , 3.39ms,Layer_02 , 3.51ms,Layer_03 , 3.41ms,Layer_04 , 3.43ms
Layer_05 , 3.40ms,Layer_06 , 3.43ms,Layer_07 , 3.45ms,Layer_08 , 3.43ms,Layer_09 , 3.42ms
我使用以下代码来获得这些对:
with open('text.txt', 'r') as file:
pairs = re.findall('(Layer_\d+)\s,\s(\d+\.\d+)ms', file.read())
pairs = [(k, float(v)) for k,v in pairs]
df = pd.DataFrame(pairs)
这给了我两个系列的数据集
然而,我想让它们并行:
有人知道如何实现吗?这里有一种方法
import pandas as pd
pairs_ = dict()
for i, j in re.findall(r'(Layer_\d+)\s,\s(\d+\.\d+)ms', text):
pairs_.setdefault(i, []).extend([i, j])
pd.DataFrame(pairs_.values())
0 1 2 3
0 Layer_00 3.46 Layer_00 3.42
1 Layer_01 3.40 Layer_01 3.39
2 Layer_02 3.56 Layer_02 3.51
3 Layer_03 3.49 Layer_03 3.41
4 Layer_04 3.44 Layer_04 3.43
5 Layer_05 3.45 Layer_05 3.40
6 Layer_06 3.44 Layer_06 3.43
7 Layer_07 3.46 Layer_07 3.45
8 Layer_08 3.45 Layer_08 3.43
9 Layer_09 3.48 Layer_09 3.42