Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中计算全宽半最大值_Python_Python 3.x_Pandas_Dataframe_Automation - Fatal编程技术网

在python中计算全宽半最大值

在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

我正在尝试在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(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)