在python中计算全宽半最大值
我正在尝试在python中自动实现全宽度半最大值。我有一个6行(信号)的数据帧。我可以一次处理一个信号,但我想处理数据帧中的所有信号。到目前为止,我的代码是这样的: 首先,我导入并绘制数据帧,以了解所有内容的外观,如下所示:在python中计算全宽半最大值,python,python-3.x,pandas,dataframe,automation,Python,Python 3.x,Pandas,Dataframe,Automation,我正在尝试在python中自动实现全宽度半最大值。我有一个6行(信号)的数据帧。我可以一次处理一个信号,但我想处理数据帧中的所有信号。到目前为止,我的代码是这样的: 首先,我导入并绘制数据帧,以了解所有内容的外观,如下所示: import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.read_csv("Values_S250_3_level_YS.csv") plt.plot
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv("Values_S250_3_level_YS.csv")
plt.plot(df)
然后我制作一个列表,将数据框中的所有值打印到其中,如下所示:
listb = [] # to print all the values of dataframe in a list form
for name, values in df.iteritems():
print('{name}: {value}'.format(name=name, value=values))
listb.append(values)
到目前为止一切都很好。接下来,我想找到listb中大于最大值一半的值
xss = [] # to get a list of
for x in range(len(listb)):
for a in range(len(listb[x])):
if listb[x][a] > max(listb[x])/2.0:
xss.append(a)
print(xss)
现在这一切正常,但我的问题是,所有6行的结果都附加在一个列表(xss)中,因此
如何在for循环中创建6个不同的列表?
一旦我有了它,我将能够找到min(xss)和max(xss)来找到差异,这对应于每条线的全宽半max
如果您想尝试,以下是csv文件的链接:
下面是这个情节的样子
如果我理解正确,只需对代码进行最小的更改:
xss = []
for x in range(len(listb)):
xss_current = []
for a in range(len(listb[x])):
if listb[x][a] > max(listb[x])/2.0:
xss_current.append(a)
xss.append(xss_current)
现在xss包含6个列表
xss = []
for x in range(len(listb)):
xss_current = []
for a in range(len(listb[x])):
if listb[x][a] > max(listb[x])/2.0:
xss_current.append(a)
xss.append(xss_current)