我有一个字典列表,它看起来像:
list_dict = [{'test1':{'a':1,'b':12,'c':40,'d':120,'e':20,'f':1,'g':2,'h':'2'}},
{'test2':{'a':5,'b':'10','c':20}},
{'test3':{'e':21,'f':'18','g':22,'h':20}}]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为这样的数据框:键应该作为行出现,测试应该作为列出现。并且在测试没有其他测试中存在的键的情况下,应将值填充为 NAN
mac_type test1 test2 test3
a 1 5 NAN
b 12 10 NAN
c 40 20 NAN
d 120 NAN NAN
e 20 NAN 21
f 1 NAN 18
g 2 NAN 22
h 2 NAN 20
Run Code Online (Sandbox Code Playgroud)
请帮助我。
我有一个振动信号,我想使用均方根和 21 天的滚动窗口来平滑信号。数据以分钟为单位,因此 21 天的滚动窗口意味着 21*1440[21*24*60]。有没有类似的方法:
# Dummy approach
df['Rolling_rms'] = df['signal'].rolling(21*1440).rms()
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 for 循环的方法,这太耗时了:
# Function for calculating RMS
def rms_calc(ser):
return np.sqrt(np.mean(ser**2))
for i in range(0,len(signal)):
j = 21*1440+i
print(rms_calc(df[signal][i:j]))
Run Code Online (Sandbox Code Playgroud)