gpt4 book ai didi

python - 从 CSV 中删除整行(如果为空)

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:04 25 4
gpt4 key购买 nike

我有一个来自仪器的数据文件,输出为 CSV。读取文件和相应的列没有问题,但是,由于仪器的细微变化,数据文件已更改,我不确定如何更改我的代码以仍然读取文件。

f = open('Rotator_050816.dat')
lines = f.readlines()
i = 0
while (lines[i]<>"[Data]\n"):
i+=1
i = i + 2
Temp = []; Field = []; Resistance1 = []; Resistance2 = [];
while(i<len(lines)):
data = lines[i].split(",")
Temp.append(float(data[3])
Field.append(float(data[4])
Resistance1.append(float[12])
Resistance2.append(float[13])
i+=1

Temp = np.array(Temp)
Field_T = np.array(Field)/10000.
Resistance1 = np.array(Resistance1)
Excitation1 = np.array(Excitation1)

这是以前使用的 MWE。如果 CSV 文件没有空白条目,这没有问题,但是,如果有空白条目,则会出现问题,因为 len(Resistance1) ≠ len(Temp) 因此无法正确绘制它们。所以我的数据文件现在看起来像这样:

Example Data File

所以我需要添加几行代码,如果一行用于 Res,则可以读取这些代码行。 Ch1 或 Res。 Ch2 为空,然后在附加到最终数据集之前跳过所有变量的整行。这样 len(Resistance1) = len(Temp) 和每个 Res。 Ch1 测量与正确的温度匹配。

最佳答案

1) 以只读模式打开文件并获取所有行

lines_in_my_file = []
with open("my_file.csv", "r") as my_file:
lines_in_my_file = my_file.readlines()

2) 再次打开文件,这次是写模式,将所有非空行写入文件:

with open("my_file.csv", "r") as my_file:
for line in lines_in_my_file:
if line.strip().strip(",") != ""
my_file.write(line)

请记住,这将删除任何仅由空格、制表符或逗号组成的行。所以任何看起来像这样的行:

,,,, (this line has only commas)
(this line has only spaces)
\n (this line is just a newline character)

...将被删除。

关于python - 从 CSV 中删除整行(如果为空),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com