我有一个大约70个字符串值的列表,它们都带有E+(05或06),它们应该被转换为浮点型(因为每当我试图打印这些值时,它总是忽略100000或1000000)。
raw_data = 'EISTest16_10CV_01.txt' # name of your file
# Define the columns from our txt table
columns = ["Pt.","Frequency","Z'","Z''","Frequency (Hz)","|Z|","theta"]
# Read the txt file
data = pd.read_csv(raw_data,names=columns, sep="\t" or " ", skiprows =7) #skiprows is used to remove the header as parameters
frequency = np.asarray((data["Frequency"]))
#print("first 3 frequencies: ")
#test = '{0:,.2f}'.format(float(frequency[0]))
#floatfrequency = float(frequency[1])
#print(floatfrequency)
下面的4行是我的问题所在。2我怎样才能把字符串变成浮点型呢?3或者我怎样才能从一个列表(或字符串)中读取E+06呢?
一些类似的答案建议使用函数strip()。作为一个例子,我是否应该使用它来删除E+05,然后手动添加100000倍?
另请尝试:test =“{0:,.2f}”. format(浮点型(频率[0]))
但是发生相同的错误。
2条答案
按热度按时间xzlaal3s1#
你的问题出在小数点的逗号上。2你需要用一个点来表示小数点。3你应该用这样的点来代替逗号
或者,您可以尝试使用十进制数选项读取文件,如下所示:
35g0bw712#
我认为问题在于python中的小数点分隔符是一个点(.),而你的数据使用了逗号(,)。你可以用以下代码来解决这个问题: