首页 > 解决方案 > 使用 python pandas 从数据框中删除特定值

问题描述

为了消除时间波中的噪音,我想删除一个非常大的数据帧的行中特定但不同的值。我只能找到删除整行或整列的选项,但这不是我需要的。一行对应于测量 id(总共 30k),一列对应于时间步长(总共 2500)。数据框如下所示:x1, x2, x3, ....., x2500 -0.001213, -0.001699, 0.003154, ..., -0.001213 0.000243, -0.009706, -0.003397, ..., 0.002184 等

我选择了数据来保存一个 for 循环比较阈值,并将它们存储在一个 np.array 中,其中包含 1 和 0。

我需要新数据框中的选定数据(用于制作 csv)以进行进一步处理。** 所选数据应仅包含在该位置的选择数组中有 1 的旧数据框的值。** 感谢您提供任何有用的建议。

标签: pythonpandasnumpy

解决方案


要修改数据框中一行中的特定值,可以使用 applymap 方法。

假设您有一个要在数据框中替换的值列表:

import numpy as np
import pandas as pd

value_to_remove=[4,6,10]

arr=np.reshape(np.arange(16),(4,4))
df=pd.DataFrame(arr,columns=['a','b','c','d'])

df=df.applymap(lambda x: np.nan if x in value_to_remove else x)

如果您需要修改特定行内的值,请改用 map:

df.loc[1]=df.loc[1].map(lambda x: np.nan if x in value_to_remove else x)

推荐阅读