我试图分析excel文件中的数据集
示例数据:
Time in s Displacement in mm Force in N
0 0 Not Relevant
1 1 Not Relevant
2 2 Not Relevant
3 3 Not Relevant
4 2 Not Relevant
5 1 Not Relevant
6 0 Not Relevant
7 2 Not Relevant
8 3 Not Relevant
9 4 Not Relevant
10 5 Not Relevant
11 6 Not Relevant
12 5 Not Relevant
13 4 Not Relevant
14 3 Not Relevant
15 2 Not Relevant
16 1 Not Relevant
17 0 Not Relevant
18 4 Not Relevant
19 5 Not Relevant
20 6 Not Relevant
21 7 Not Relevant
22 6 Not Relevant
23 5 Not Relevant
24 4 Not Relevant
24 0 Not Relevant
从xls文件导入,然后绘制时间与位移图:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel(
'DATA.xls',
engine='xlrd', usecols=['Time in s', 'Displacement in mm', 'Force in N'])
fig, ax = plt.subplots()
ax.plot(df['Time in s'], df['Displacement in mm'])
ax.set(xlabel='Time (s)', ylabel='Disp',
title='time disp')
ax.grid()
fig.savefig("time_disp.png")
plt.show()
我想将数据分成多个组,分别进行分析。 所以如果我绘制位移与时间的关系图,我得到一个sawtooth,因为样本是循环加载的
我想分割数据,这样每个“牙齿”都是它自己的组或数据集,这样我就可以分析每个周期
有人能帮忙吗
您可以创建一个列组,该列组的值在每个局部最小值处都会发生变化。首先在局部最小值处得到True,并使用两个^{} ,一个向前,一个向后。然后使用^{} 来增加组数,每次都会增加一个局部最小值
您可以通过单独选择每个组来拆分数据,也可以使用循环执行某些操作,并在每个循环中执行任何您想要的操作
编辑:如果问题中的数据最小值为0,那么执行
df['gr'] = df['Deplacement'].eq(0).cumsum()
也可以,但具体来说,最小值正好为0相关问题 更多 >
编程相关推荐