【发布时间】:2021-09-25 03:28:10
【问题描述】:
我创建了一个带有一些 Numpy 数组列的 pandas DataFrame。我想过滤其中一列并将其分配给新列。
df = pd.DataFrame({'Signal' : signalarr, 'Signal RMS with Peaks' : RMS_Calculator(signalarr)} , columns=['Signal','Signal RMS with Peaks'])
df['Signal CMA with Peaks'] = df['Signal'].expanding(2).mean()
df.loc[[0], ['Signal CMA with Peaks']] = df['Signal'][0]
df['Peaks'] = random_peak
#print(df[df['Signal'] >= 10])
#df['Signal Without Peaks'] = df[df['Signal'] >= 10] # error: Wrong number of items passed 4, placement implies 1
df['Signal Without Peaks'] = df['Signal'] >= 10 # I need the values, not the boolean.
df
我阅读了这篇 Pandas - Filtering value by columns throws error (ValueError: Wrong number of items passed 3, placement implies 1) 的帖子并尝试了解决方案,但仍然出现错误。
通过像 df['Signal Without Peaks'] = df[df['Signal'] >= 10] 这样的过滤,我之前没有收到错误。有什么想法我错了吗?
谢谢!
更新:我在过滤值之前创建了另一个数据框,我得到了 NaN 值,这是我的应用程序所需的结果。
df = pd.DataFrame(signalarr, columns=['Signal'])
df['Signal Without Peaks'] = df[df['Signal'] <= 10]
【问题讨论】: