清除 Python 中的 return 数据 - xlsxwriter
Clean return data in Python - xlswriter
我需要以下 python 方法的帮助。正如您在下面看到的,函数 returns 列表中的一些数据。
def EIS(self):
'''This function runs EIS experiment'''
#some code here
frequencies=[100000.0,79432.8,63095.7,50118.7,39810.7,31622.8,25118.9]
Data = []
for freq in (frequencies) :
#print(freq)
self.sendcommand("GS_SetBestCurrentRange", timeout=0.1)
self.sendcommand("GS_FRASetModulationFrequency %.5f" %freq, timeout=0.1)
self.sendcommand("GS_FRAGetMeasurementMinDurationMS", timeout=0.1)
self.sendcommand("GS_FRAMakeMeasurement 1", timeout=0.1)
self.sendcommand("GS_GetCurrentRange")
VoltageSamples = self.sendcommand("PS_FRAGetVoltageSample", timeout=0.1)
#CurrentSample = self.sendcommand("PS_FRAGetCurrentSample", timeout=0.1).split(" ")
Data.append(VoltageSamples,)
print (Data)
return Data
我的问题是我拥有的 return 数据不正确 format.Below 你可以看看它 returns:
['GS_FRAGetVoltageSample 0.00699254 -213.701 0\r']
['GS_FRAGetVoltageSample 0.00699254 -213.701 0\r', 'GS_FRAGetVoltageSample 0.0128992 -187.322 0\r']
我想清除数据,因此它只能 return 浮点数(0.00699254 -213.701 等...)我想说数字 0.00699254 和 0.0128992 在一列中,-213.701和 -187.322 在另一列中。我使用 xlswriter 库并调用该函数:
Data= TEST.EIS()
worksheet4.write_column('A1',Data)
但它会像这样输出 A1 列中的所有数据
"GS_FRAGetVoltageSample 0.00699254 -213.701 0"
"GS_FRAGetVoltageSample 0.0128992 -187.322 0"
"GS_FRAGetVoltageSample 0.0113329 -67.7349 0"
"GS_FRAGetVoltageSample 0.0110053 -63.2269 0"
"GS_FRAGetVoltageSample 0.0149435 -51.8437 0"
"GS_FRAGetVoltageSample 0.0131203 -38.0366 0"
"GS_FRAGetVoltageSample 0.0120906 -35.6771 0"
对如何清理数据并使它们进入不同的列有什么帮助吗?
您需要清理 VoltageSamples
:
def EIS(self):
...
Data = []
for freq in frequencies:
...
...
VoltageSamples = self.sendcommand . . .
samples = VoltageSamples.split()
Data.append( (samples[1], samples[2]) )
return Data
然后你需要插入两个不同的列表,一个插入A1,另一个插入A2:
Data = TEST.EIS()
print(Data)
list1, list2 = zip(*Data)
worksheet4.write_column('A1', list1)
worksheet4.write_column('B1', list2)
更新:
我已经使用这个测试代码来验证我上面的建议:
frequencies=[31622.8, 25118.9]
Data = []
for freq in frequencies:
VoltageSamples = ' '.join(('foo', str(freq), 'bar', 'zoo'))
samples = VoltageSamples.split()
Data.append( (samples[1], samples[2]) )
print(Data)
list1, list2 = zip(*Data)
print(list1)
print(list2)
我得到的输出是:
[('31622.8', 'bar'), ('25118.9', 'bar')]
('31622.8', '25118.9')
('bar', 'bar')
我需要以下 python 方法的帮助。正如您在下面看到的,函数 returns 列表中的一些数据。
def EIS(self):
'''This function runs EIS experiment'''
#some code here
frequencies=[100000.0,79432.8,63095.7,50118.7,39810.7,31622.8,25118.9]
Data = []
for freq in (frequencies) :
#print(freq)
self.sendcommand("GS_SetBestCurrentRange", timeout=0.1)
self.sendcommand("GS_FRASetModulationFrequency %.5f" %freq, timeout=0.1)
self.sendcommand("GS_FRAGetMeasurementMinDurationMS", timeout=0.1)
self.sendcommand("GS_FRAMakeMeasurement 1", timeout=0.1)
self.sendcommand("GS_GetCurrentRange")
VoltageSamples = self.sendcommand("PS_FRAGetVoltageSample", timeout=0.1)
#CurrentSample = self.sendcommand("PS_FRAGetCurrentSample", timeout=0.1).split(" ")
Data.append(VoltageSamples,)
print (Data)
return Data
我的问题是我拥有的 return 数据不正确 format.Below 你可以看看它 returns:
['GS_FRAGetVoltageSample 0.00699254 -213.701 0\r']
['GS_FRAGetVoltageSample 0.00699254 -213.701 0\r', 'GS_FRAGetVoltageSample 0.0128992 -187.322 0\r']
我想清除数据,因此它只能 return 浮点数(0.00699254 -213.701 等...)我想说数字 0.00699254 和 0.0128992 在一列中,-213.701和 -187.322 在另一列中。我使用 xlswriter 库并调用该函数:
Data= TEST.EIS()
worksheet4.write_column('A1',Data)
但它会像这样输出 A1 列中的所有数据
"GS_FRAGetVoltageSample 0.00699254 -213.701 0"
"GS_FRAGetVoltageSample 0.0128992 -187.322 0"
"GS_FRAGetVoltageSample 0.0113329 -67.7349 0"
"GS_FRAGetVoltageSample 0.0110053 -63.2269 0"
"GS_FRAGetVoltageSample 0.0149435 -51.8437 0"
"GS_FRAGetVoltageSample 0.0131203 -38.0366 0"
"GS_FRAGetVoltageSample 0.0120906 -35.6771 0"
对如何清理数据并使它们进入不同的列有什么帮助吗?
您需要清理 VoltageSamples
:
def EIS(self):
...
Data = []
for freq in frequencies:
...
...
VoltageSamples = self.sendcommand . . .
samples = VoltageSamples.split()
Data.append( (samples[1], samples[2]) )
return Data
然后你需要插入两个不同的列表,一个插入A1,另一个插入A2:
Data = TEST.EIS()
print(Data)
list1, list2 = zip(*Data)
worksheet4.write_column('A1', list1)
worksheet4.write_column('B1', list2)
更新:
我已经使用这个测试代码来验证我上面的建议:
frequencies=[31622.8, 25118.9]
Data = []
for freq in frequencies:
VoltageSamples = ' '.join(('foo', str(freq), 'bar', 'zoo'))
samples = VoltageSamples.split()
Data.append( (samples[1], samples[2]) )
print(Data)
list1, list2 = zip(*Data)
print(list1)
print(list2)
我得到的输出是:
[('31622.8', 'bar'), ('25118.9', 'bar')]
('31622.8', '25118.9')
('bar', 'bar')