循环存储在单列中的多个值,例如 [345 1234]
Loop over multiple values stored in single column e.g [345 1234]
我有一个 CSV 文件,其中一列在一个位置存储了两个值,例如 [345 1234],但有时没有值,例如 [] 或只有一个 [456]。
我编写了一个脚本,该脚本适用于空值或单值,但对于双值却失败了。我尝试拆分,将 space 替换为 、,但由于值为空或单个值,它给出了错误。 如何通过循环包含这两个值,该循环既适用于空值也适用于单个值?
df文件格式如下:
20200423.GS022.mseed_597000,[ ],
20200423.GS022.mseed_600000,[ ],
20200423.GS022.mseed_603000,[424 1901],
20200423.GS022.mseed_606000,[2259],
#code for an empty or single value
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '')
if itp != '':
P=int(float(itp))/100
else:
P=0
我遇到了这个错误,
ValueError:无法将字符串转换为浮点数:'424 1901'
失败的原因是您正在将 itp
转换为 float
,但是 424 1901
是一个包含 space 的字符串,因此无法转换为 float
.
如果 424
和 1901
是 2 个不同的值,您可以使用以下代码:
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '')
for val in itp.split():
if val != '':
P=int(float(val))/100
else:
P=0
print (f'P: {P}')
但是,如果两者都是单个值,例如 4241901
,您可以使用以下代码:
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '').replace(" ","")
if itp != '':
P=int(float(itp))/100
else:
P=0
我有一个 CSV 文件,其中一列在一个位置存储了两个值,例如 [345 1234],但有时没有值,例如 [] 或只有一个 [456]。 我编写了一个脚本,该脚本适用于空值或单值,但对于双值却失败了。我尝试拆分,将 space 替换为 、,但由于值为空或单个值,它给出了错误。 如何通过循环包含这两个值,该循环既适用于空值也适用于单个值?
df文件格式如下:
20200423.GS022.mseed_597000,[ ],
20200423.GS022.mseed_600000,[ ],
20200423.GS022.mseed_603000,[424 1901],
20200423.GS022.mseed_606000,[2259],
#code for an empty or single value
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '')
if itp != '':
P=int(float(itp))/100
else:
P=0
我遇到了这个错误,
ValueError:无法将字符串转换为浮点数:'424 1901'
失败的原因是您正在将 itp
转换为 float
,但是 424 1901
是一个包含 space 的字符串,因此无法转换为 float
.
如果 424
和 1901
是 2 个不同的值,您可以使用以下代码:
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '')
for val in itp.split():
if val != '':
P=int(float(val))/100
else:
P=0
print (f'P: {P}')
但是,如果两者都是单个值,例如 4241901
,您可以使用以下代码:
with open('myfile.txt','w') as f:
for i in range(len(df)):
itp = df.iloc[i, 1].replace('[', '').replace(']', '').replace(" ","")
if itp != '':
P=int(float(itp))/100
else:
P=0