[英]python csv filter pairs and nonpairs
The text file I have is like below:我拥有的文本文件如下所示:
C1,D1,,,,,,,,
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,,,,,,,,
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
I tried the below:我尝试了以下方法:
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)
and got this:得到了这个:
to get the pairs得到对
however I want to include the C1,D1,C2,D2, the result should be like this:但是我想包括 C1,D1,C2,D2,结果应该是这样的:
Does anyone has idea how to solve it?有谁知道如何解决它?
This should work, but you can't declare the value as float if it will also hold strings ("C1","C2"):这应该可以,但是如果它还包含字符串(“C1”,“C2”),则不能将值声明为浮点数:
with open('text.txt', 'r') as file:
pairs = re.findall('(Layer_\d+|C\d)\s*,\s*(\d+\.\d+|D\d)[ms]*', file.read())
pairs = [(k, v) for k,v in pairs]
df = pd.DataFrame(pairs)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.