我有一个日志文件,需要将用逗号分隔的值分成多个单独的值数组,以便以后进行绘图。日志文件每秒写入一次
数据格式如下:
Time, Bx, By, Bz, Status
2147483894.995726, 3424, 3424, 3424, 128
2147483895.9957414, 3552, 3552, 3552, 128
2147483896.995726, 3680, 3680, 3680, 128
2147483897.995711, 3808, 3808, 3808, 128
2147483898.9956956, 3936, 3936, 3936, 128
2147483899.9956803, 4064, 4064, 4064, 128
做到这一点的最佳方法是什么?常用表达?我尝试使用line.rsplit,但只能提取最后一列。
任何帮助表示赞赏!谢谢
答案 0 :(得分:2)
我强烈建议您使用熊猫。如果没有,只需pip install pandas
。然后,假设您的csv名为test.csv
,请运行以下代码:
import pandas as pd
df = pd.read_csv("test.csv", sep=',')
现在,df是pandas dataframe,原始文件中的每一行都是一行。您可以iterate通过他们来完成您想要的。例如:
for index, row in df.iterrows():
print(row)
Output:
Time, Bx, By, Bz, Status 2147483894.995726, 3424, 3424, 3424, 128
Name: 0, dtype: object
Time, Bx, By, Bz, Status 2147483895.9957414, 3552, 3552, 3552, 128
Name: 1, dtype: object
Time, Bx, By, Bz, Status 2147483896.995726, 3680, 3680, 3680, 128
Name: 2, dtype: object
Time, Bx, By, Bz, Status 2147483897.995711, 3808, 3808, 3808, 128
Name: 3, dtype: object
Time, Bx, By, Bz, Status 2147483898.9956956, 3936, 3936, 3936, 128
Name: 4, dtype: object
Time, Bx, By, Bz, Status 2147483899.9956803, 4064, 4064, 4064, 128
Name: 5, dtype: object
答案 1 :(得分:1)
您可以使用csv模块并使用功能csv.reader
答案 2 :(得分:1)
熊猫不会在这里帮助您吗?
import pandas as pd
df=pd.read_csv("log.csv")